@allbridge/bridge-core-sdk 3.27.0-alpha.2 → 3.27.0-alpha.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/browser/index.js +3 -3
  2. package/dist/browser/index.js.map +4 -4
  3. package/dist/cjs/index.js +3 -3
  4. package/dist/cjs/index.js.map +4 -4
  5. package/dist/esm/index.js +3 -3
  6. package/dist/esm/index.js.map +4 -4
  7. package/dist/src/chains/chain.enums.d.ts +7 -2
  8. package/dist/src/chains/chain.enums.js +5 -0
  9. package/dist/src/chains/chain.enums.js.map +1 -1
  10. package/dist/src/chains/index.js +6 -0
  11. package/dist/src/chains/index.js.map +1 -1
  12. package/dist/src/client/core-api/api-client.js +1 -0
  13. package/dist/src/client/core-api/api-client.js.map +1 -1
  14. package/dist/src/client/core-api/core-api-mapper.js +32 -0
  15. package/dist/src/client/core-api/core-api-mapper.js.map +1 -1
  16. package/dist/src/client/core-api/core-api.model.d.ts +13 -2
  17. package/dist/src/client/core-api/core-api.model.js.map +1 -1
  18. package/dist/src/configs/mainnet.js +1 -0
  19. package/dist/src/configs/mainnet.js.map +1 -1
  20. package/dist/src/index.d.ts +6 -4
  21. package/dist/src/index.js +5 -11
  22. package/dist/src/index.js.map +1 -1
  23. package/dist/src/models/index.d.ts +12 -4
  24. package/dist/src/models/index.js +4 -0
  25. package/dist/src/models/index.js.map +1 -1
  26. package/dist/src/services/bridge/alg/index.d.ts +1 -0
  27. package/dist/src/services/bridge/alg/index.js +79 -43
  28. package/dist/src/services/bridge/alg/index.js.map +1 -1
  29. package/dist/src/services/bridge/evm/index.d.ts +1 -0
  30. package/dist/src/services/bridge/evm/index.js +103 -33
  31. package/dist/src/services/bridge/evm/index.js.map +1 -1
  32. package/dist/src/services/bridge/index.d.ts +2 -2
  33. package/dist/src/services/bridge/index.js +15 -4
  34. package/dist/src/services/bridge/index.js.map +1 -1
  35. package/dist/src/services/bridge/models/bridge.model.d.ts +12 -4
  36. package/dist/src/services/bridge/models/bridge.model.js.map +1 -1
  37. package/dist/src/services/bridge/raw-bridge-transaction-builder.js +1 -1
  38. package/dist/src/services/bridge/raw-bridge-transaction-builder.js.map +1 -1
  39. package/dist/src/services/bridge/srb/index.js +36 -28
  40. package/dist/src/services/bridge/srb/index.js.map +1 -1
  41. package/dist/src/services/bridge/stx/index.d.ts +16 -0
  42. package/dist/src/services/bridge/stx/index.js +136 -0
  43. package/dist/src/services/bridge/stx/index.js.map +1 -0
  44. package/dist/src/services/bridge/sui/index.js +166 -138
  45. package/dist/src/services/bridge/sui/index.js.map +1 -1
  46. package/dist/src/services/bridge/trx/index.js +98 -70
  47. package/dist/src/services/bridge/trx/index.js.map +1 -1
  48. package/dist/src/services/bridge/utils.d.ts +3 -1
  49. package/dist/src/services/bridge/utils.js +92 -8
  50. package/dist/src/services/bridge/utils.js.map +1 -1
  51. package/dist/src/services/liquidity-pool/alg/index.js +10 -17
  52. package/dist/src/services/liquidity-pool/alg/index.js.map +1 -1
  53. package/dist/src/services/liquidity-pool/index.js +5 -0
  54. package/dist/src/services/liquidity-pool/index.js.map +1 -1
  55. package/dist/src/services/liquidity-pool/stx/index.d.ts +21 -0
  56. package/dist/src/services/liquidity-pool/stx/index.js +141 -0
  57. package/dist/src/services/liquidity-pool/stx/index.js.map +1 -0
  58. package/dist/src/services/models/abi/PayerWithAbr.d.ts +203 -0
  59. package/dist/src/services/models/abi/PayerWithAbr.js +266 -0
  60. package/dist/src/services/models/abi/PayerWithAbr.js.map +1 -0
  61. package/dist/src/services/models/alg/BridgeClient.d.ts +158 -133
  62. package/dist/src/services/models/alg/BridgeClient.js +182 -130
  63. package/dist/src/services/models/alg/BridgeClient.js.map +1 -1
  64. package/dist/src/services/models/alg/PaddingUtilClient.d.ts +639 -0
  65. package/dist/src/services/models/alg/PaddingUtilClient.js +425 -0
  66. package/dist/src/services/models/alg/PaddingUtilClient.js.map +1 -0
  67. package/dist/src/services/models/alg/PoolClient.d.ts +204 -201
  68. package/dist/src/services/models/alg/PoolClient.js +234 -215
  69. package/dist/src/services/models/alg/PoolClient.js.map +1 -1
  70. package/dist/src/services/models/index.d.ts +2 -1
  71. package/dist/src/services/models/index.js.map +1 -1
  72. package/dist/src/services/models/stx/clarigen-types.d.ts +657 -0
  73. package/dist/src/services/models/stx/clarigen-types.js +2296 -0
  74. package/dist/src/services/models/stx/clarigen-types.js.map +1 -0
  75. package/dist/src/services/token/index.js +7 -2
  76. package/dist/src/services/token/index.js.map +1 -1
  77. package/dist/src/services/token/models/token.model.d.ts +4 -4
  78. package/dist/src/services/token/models/token.model.js.map +1 -1
  79. package/dist/src/services/token/stx/index.d.ts +20 -0
  80. package/dist/src/services/token/stx/index.js +59 -0
  81. package/dist/src/services/token/stx/index.js.map +1 -0
  82. package/dist/src/services/utils/alg/index.d.ts +1 -10
  83. package/dist/src/services/utils/alg/index.js +0 -20
  84. package/dist/src/services/utils/alg/index.js.map +1 -1
  85. package/dist/src/services/utils/stx/get-token-name.d.ts +2 -0
  86. package/dist/src/services/utils/stx/get-token-name.js +15 -0
  87. package/dist/src/services/utils/stx/get-token-name.js.map +1 -0
  88. package/dist/src/services/utils/stx/post-conditions.d.ts +3 -0
  89. package/dist/src/services/utils/stx/post-conditions.js +27 -0
  90. package/dist/src/services/utils/stx/post-conditions.js.map +1 -0
  91. package/dist/src/services/yield/index.js +4 -0
  92. package/dist/src/services/yield/index.js.map +1 -1
  93. package/dist/src/tokens-info/tokens-info.model.d.ts +21 -0
  94. package/dist/src/tokens-info/tokens-info.model.js.map +1 -1
  95. package/dist/src/utils/utils.d.ts +2 -0
  96. package/dist/src/utils/utils.js +11 -0
  97. package/dist/src/utils/utils.js.map +1 -1
  98. package/dist/src/version.d.ts +1 -1
  99. package/dist/src/version.js +1 -1
  100. package/dist/src/version.js.map +1 -1
  101. package/package.json +6 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clarigen-types.js","sourceRoot":"","sources":["../../../../../src/services/models/stx/clarigen-types.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Response, TypedAbiArg, TypedAbiFunction, TypedAbiMap, TypedAbiVariable } from \"@clarigen/core\";\n\nexport const stacksContracts = {\n bridge: {\n functions: {\n assertCanSwap: {\n name: \"assert-can-swap\",\n access: \"private\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n assertGasOracle: {\n name: \"assert-gas-oracle\",\n access: \"private\",\n args: [{ name: \"gas-oracle-ref\", type: \"trait_reference\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[gasOracleRef: TypedAbiArg<string, \"gasOracleRef\">], Response<boolean, bigint>>,\n assertMessenger: {\n name: \"assert-messenger\",\n access: \"private\",\n args: [\n { name: \"messenger-ref\", type: \"trait_reference\" },\n { name: \"messenger-id\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [messengerRef: TypedAbiArg<string, \"messengerRef\">, messengerId: TypedAbiArg<number | bigint, \"messengerId\">],\n Response<boolean, bigint>\n >,\n convertBridgingFeeInTokensToNative: {\n name: \"convert-bridging-fee-in-tokens-to-native\",\n access: \"private\",\n args: [\n { name: \"ft-ref\", type: \"trait_reference\" },\n { name: \"gas-oracle-ref\", type: \"trait_reference\" },\n { name: \"fee-token-amount\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n ftRef: TypedAbiArg<string, \"ftRef\">,\n gasOracleRef: TypedAbiArg<string, \"gasOracleRef\">,\n feeTokenAmount: TypedAbiArg<number | bigint, \"feeTokenAmount\">,\n ],\n Response<bigint, bigint>\n >,\n onlyOwner: {\n name: \"only-owner\",\n access: \"private\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n onlyStopAuthority: {\n name: \"only-stop-authority\",\n access: \"private\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n receiveAndSwapFromVusd: {\n name: \"receive-and-swap-from-vusd\",\n access: \"private\",\n args: [\n { name: \"pool-ref\", type: \"trait_reference\" },\n { name: \"ft-ref\", type: \"trait_reference\" },\n { name: \"recipient\", type: \"principal\" },\n { name: \"vusd-amount\", type: \"uint128\" },\n { name: \"receive-amount-min\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n poolRef: TypedAbiArg<string, \"poolRef\">,\n ftRef: TypedAbiArg<string, \"ftRef\">,\n recipient: TypedAbiArg<string, \"recipient\">,\n vusdAmount: TypedAbiArg<number | bigint, \"vusdAmount\">,\n receiveAmountMin: TypedAbiArg<number | bigint, \"receiveAmountMin\">,\n ],\n Response<bigint, bigint>\n >,\n sendAndSwapToVusd: {\n name: \"send-and-swap-to-vusd\",\n access: \"private\",\n args: [\n { name: \"pool-ref\", type: \"trait_reference\" },\n { name: \"ft-ref\", type: \"trait_reference\" },\n { name: \"user\", type: \"principal\" },\n { name: \"amount\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n poolRef: TypedAbiArg<string, \"poolRef\">,\n ftRef: TypedAbiArg<string, \"ftRef\">,\n user: TypedAbiArg<string, \"user\">,\n amount: TypedAbiArg<number | bigint, \"amount\">,\n ],\n Response<bigint, bigint>\n >,\n sendTokens: {\n name: \"send-tokens\",\n access: \"private\",\n args: [\n { name: \"messenger-ref\", type: \"trait_reference\" },\n { name: \"gas-oracle-ref\", type: \"trait_reference\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"recipient\", type: { buffer: { length: 32 } } },\n { name: \"destination-chain-id\", type: \"uint128\" },\n { name: \"receive-token\", type: { buffer: { length: 32 } } },\n { name: \"nonce\", type: { buffer: { length: 32 } } },\n { name: \"messenger-id\", type: \"uint128\" },\n { name: \"bridging-fee\", type: \"uint128\" },\n ],\n outputs: {\n type: {\n response: {\n ok: {\n tuple: [\n { name: \"bridge-tx-cost\", type: \"uint128\" },\n { name: \"message-tx-cost\", type: \"uint128\" },\n ],\n },\n error: \"uint128\",\n },\n },\n },\n } as TypedAbiFunction<\n [\n messengerRef: TypedAbiArg<string, \"messengerRef\">,\n gasOracleRef: TypedAbiArg<string, \"gasOracleRef\">,\n amount: TypedAbiArg<number | bigint, \"amount\">,\n recipient: TypedAbiArg<Uint8Array, \"recipient\">,\n destinationChainId: TypedAbiArg<number | bigint, \"destinationChainId\">,\n receiveToken: TypedAbiArg<Uint8Array, \"receiveToken\">,\n nonce: TypedAbiArg<Uint8Array, \"nonce\">,\n messengerId: TypedAbiArg<number | bigint, \"messengerId\">,\n bridgingFee: TypedAbiArg<number | bigint, \"bridgingFee\">,\n ],\n Response<\n {\n bridgeTxCost: bigint;\n messageTxCost: bigint;\n },\n bigint\n >\n >,\n addBridgeToken: {\n name: \"add-bridge-token\",\n access: \"public\",\n args: [\n { name: \"chain-id_\", type: \"uint128\" },\n { name: \"token-address\", type: { buffer: { length: 32 } } },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [chainId_: TypedAbiArg<number | bigint, \"chainId_\">, tokenAddress: TypedAbiArg<Uint8Array, \"tokenAddress\">],\n Response<boolean, bigint>\n >,\n addPool: {\n name: \"add-pool\",\n access: \"public\",\n args: [\n { name: \"pool-ref\", type: \"trait_reference\" },\n { name: \"ft-ref\", type: \"trait_reference\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [poolRef: TypedAbiArg<string, \"poolRef\">, ftRef: TypedAbiArg<string, \"ftRef\">],\n Response<boolean, bigint>\n >,\n getTransactionCost: {\n name: \"get-transaction-cost\",\n access: \"public\",\n args: [\n { name: \"gas-oracle-ref\", type: \"trait_reference\" },\n { name: \"chain-id_\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [gasOracleRef: TypedAbiArg<string, \"gasOracleRef\">, chainId_: TypedAbiArg<number | bigint, \"chainId_\">],\n Response<bigint, bigint>\n >,\n init: {\n name: \"init\",\n access: \"public\",\n args: [\n { name: \"this-chain-id_\", type: \"uint128\" },\n { name: \"gas-oracle\", type: \"principal\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [thisChainId_: TypedAbiArg<number | bigint, \"thisChainId_\">, gasOracle: TypedAbiArg<string, \"gasOracle\">],\n Response<boolean, bigint>\n >,\n receiveTokens: {\n name: \"receive-tokens\",\n access: \"public\",\n args: [\n { name: \"messenger-ref\", type: \"trait_reference\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"recipient\", type: \"principal\" },\n { name: \"source-chain-id\", type: \"uint128\" },\n { name: \"pool-ref\", type: \"trait_reference\" },\n { name: \"ft-ref\", type: \"trait_reference\" },\n { name: \"nonce\", type: { buffer: { length: 32 } } },\n { name: \"messenger-id\", type: \"uint128\" },\n { name: \"receive-amount-min\", type: \"uint128\" },\n { name: \"extra-gas\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n messengerRef: TypedAbiArg<string, \"messengerRef\">,\n amount: TypedAbiArg<number | bigint, \"amount\">,\n recipient: TypedAbiArg<string, \"recipient\">,\n sourceChainId: TypedAbiArg<number | bigint, \"sourceChainId\">,\n poolRef: TypedAbiArg<string, \"poolRef\">,\n ftRef: TypedAbiArg<string, \"ftRef\">,\n nonce: TypedAbiArg<Uint8Array, \"nonce\">,\n messengerId: TypedAbiArg<number | bigint, \"messengerId\">,\n receiveAmountMin: TypedAbiArg<number | bigint, \"receiveAmountMin\">,\n extraGas: TypedAbiArg<number | bigint, \"extraGas\">,\n ],\n Response<boolean, bigint>\n >,\n registerBridge: {\n name: \"register-bridge\",\n access: \"public\",\n args: [\n { name: \"chain-id_\", type: \"uint128\" },\n { name: \"bridge-address\", type: { buffer: { length: 32 } } },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [chainId_: TypedAbiArg<number | bigint, \"chainId_\">, bridgeAddress: TypedAbiArg<Uint8Array, \"bridgeAddress\">],\n Response<boolean, bigint>\n >,\n removeBridge: {\n name: \"remove-bridge\",\n access: \"public\",\n args: [{ name: \"chain-id_\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[chainId_: TypedAbiArg<number | bigint, \"chainId_\">], Response<boolean, bigint>>,\n removeBridgeToken: {\n name: \"remove-bridge-token\",\n access: \"public\",\n args: [\n { name: \"chain-id_\", type: \"uint128\" },\n { name: \"token-address\", type: { buffer: { length: 32 } } },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [chainId_: TypedAbiArg<number | bigint, \"chainId_\">, tokenAddress: TypedAbiArg<Uint8Array, \"tokenAddress\">],\n Response<boolean, bigint>\n >,\n removeMessenger: {\n name: \"remove-messenger\",\n access: \"public\",\n args: [{ name: \"messenger-id\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[messengerId: TypedAbiArg<number | bigint, \"messengerId\">], Response<boolean, bigint>>,\n setGasUsage: {\n name: \"set-gas-usage\",\n access: \"public\",\n args: [\n { name: \"chain-id_\", type: \"uint128\" },\n { name: \"gas\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [chainId_: TypedAbiArg<number | bigint, \"chainId_\">, gas: TypedAbiArg<number | bigint, \"gas\">],\n Response<boolean, bigint>\n >,\n setMessenger: {\n name: \"set-messenger\",\n access: \"public\",\n args: [\n { name: \"messenger-id\", type: \"uint128\" },\n { name: \"new-messenger\", type: \"principal\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [messengerId: TypedAbiArg<number | bigint, \"messengerId\">, newMessenger: TypedAbiArg<string, \"newMessenger\">],\n Response<boolean, bigint>\n >,\n setOwner: {\n name: \"set-owner\",\n access: \"public\",\n args: [{ name: \"new-owner\", type: \"principal\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[newOwner: TypedAbiArg<string, \"newOwner\">], Response<boolean, bigint>>,\n setRebalancer: {\n name: \"set-rebalancer\",\n access: \"public\",\n args: [{ name: \"new-rebalancer\", type: \"principal\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[newRebalancer: TypedAbiArg<string, \"newRebalancer\">], Response<boolean, bigint>>,\n setStopAuthority: {\n name: \"set-stop-authority\",\n access: \"public\",\n args: [{ name: \"new-authority\", type: \"principal\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[newAuthority: TypedAbiArg<string, \"newAuthority\">], Response<boolean, bigint>>,\n startSwap: {\n name: \"start-swap\",\n access: \"public\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n stopSwap: {\n name: \"stop-swap\",\n access: \"public\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n swap: {\n name: \"swap\",\n access: \"public\",\n args: [\n { name: \"amount\", type: \"uint128\" },\n { name: \"send-pool-ref\", type: \"trait_reference\" },\n { name: \"send-ft-ref\", type: \"trait_reference\" },\n { name: \"receive-pool-ref\", type: \"trait_reference\" },\n { name: \"receive-ft-ref\", type: \"trait_reference\" },\n { name: \"recipient\", type: \"principal\" },\n { name: \"receive-amount-min\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n amount: TypedAbiArg<number | bigint, \"amount\">,\n sendPoolRef: TypedAbiArg<string, \"sendPoolRef\">,\n sendFtRef: TypedAbiArg<string, \"sendFtRef\">,\n receivePoolRef: TypedAbiArg<string, \"receivePoolRef\">,\n receiveFtRef: TypedAbiArg<string, \"receiveFtRef\">,\n recipient: TypedAbiArg<string, \"recipient\">,\n receiveAmountMin: TypedAbiArg<number | bigint, \"receiveAmountMin\">,\n ],\n Response<boolean, bigint>\n >,\n swapAndBridge: {\n name: \"swap-and-bridge\",\n access: \"public\",\n args: [\n { name: \"pool-ref\", type: \"trait_reference\" },\n { name: \"ft-ref\", type: \"trait_reference\" },\n { name: \"messenger-ref\", type: \"trait_reference\" },\n { name: \"gas-oracle-ref\", type: \"trait_reference\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"recipient\", type: { buffer: { length: 32 } } },\n { name: \"destination-chain-id\", type: \"uint128\" },\n { name: \"receive-token\", type: { buffer: { length: 32 } } },\n { name: \"nonce\", type: { buffer: { length: 32 } } },\n { name: \"messenger-id\", type: \"uint128\" },\n { name: \"fee-native-amount\", type: \"uint128\" },\n { name: \"fee-token-amount\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n poolRef: TypedAbiArg<string, \"poolRef\">,\n ftRef: TypedAbiArg<string, \"ftRef\">,\n messengerRef: TypedAbiArg<string, \"messengerRef\">,\n gasOracleRef: TypedAbiArg<string, \"gasOracleRef\">,\n amount: TypedAbiArg<number | bigint, \"amount\">,\n recipient: TypedAbiArg<Uint8Array, \"recipient\">,\n destinationChainId: TypedAbiArg<number | bigint, \"destinationChainId\">,\n receiveToken: TypedAbiArg<Uint8Array, \"receiveToken\">,\n nonce: TypedAbiArg<Uint8Array, \"nonce\">,\n messengerId: TypedAbiArg<number | bigint, \"messengerId\">,\n feeNativeAmount: TypedAbiArg<number | bigint, \"feeNativeAmount\">,\n feeTokenAmount: TypedAbiArg<number | bigint, \"feeTokenAmount\">,\n ],\n Response<boolean, bigint>\n >,\n withdrawBridgingFeeInTokens: {\n name: \"withdraw-bridging-fee-in-tokens\",\n access: \"public\",\n args: [\n { name: \"ft-ref\", type: \"trait_reference\" },\n { name: \"amount\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [ftRef: TypedAbiArg<string, \"ftRef\">, amount: TypedAbiArg<number | bigint, \"amount\">],\n Response<boolean, bigint>\n >,\n withdrawGasTokens: {\n name: \"withdraw-gas-tokens\",\n access: \"public\",\n args: [{ name: \"amount\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[amount: TypedAbiArg<number | bigint, \"amount\">], Response<boolean, bigint>>,\n getGasOracleAddress: {\n name: \"get-gas-oracle-address\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"principal\" },\n } as TypedAbiFunction<[], string>,\n getGasUsage: {\n name: \"get-gas-usage\",\n access: \"read_only\",\n args: [{ name: \"chain-id_\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<[chainId_: TypedAbiArg<number | bigint, \"chainId_\">], Response<bigint, bigint>>,\n getMessenger: {\n name: \"get-messenger\",\n access: \"read_only\",\n args: [{ name: \"messenger-id\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"principal\", error: \"uint128\" } } },\n } as TypedAbiFunction<[messengerId: TypedAbiArg<number | bigint, \"messengerId\">], Response<string, bigint>>,\n getOtherBridge: {\n name: \"get-other-bridge\",\n access: \"read_only\",\n args: [{ name: \"chain-id_\", type: \"uint128\" }],\n outputs: { type: { response: { ok: { buffer: { length: 32 } }, error: \"uint128\" } } },\n } as TypedAbiFunction<[chainId_: TypedAbiArg<number | bigint, \"chainId_\">], Response<Uint8Array, bigint>>,\n getOwner: {\n name: \"get-owner\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"principal\" },\n } as TypedAbiFunction<[], string>,\n getProcessedMessageStatus: {\n name: \"get-processed-message-status\",\n access: \"read_only\",\n args: [{ name: \"message-hash\", type: { buffer: { length: 32 } } }],\n outputs: { type: { response: { ok: \"bool\", error: \"none\" } } },\n } as TypedAbiFunction<[messageHash: TypedAbiArg<Uint8Array, \"messageHash\">], Response<boolean, null>>,\n getRebalancer: {\n name: \"get-rebalancer\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"principal\" },\n } as TypedAbiFunction<[], string>,\n getSentMessageStatus: {\n name: \"get-sent-message-status\",\n access: \"read_only\",\n args: [{ name: \"message-hash\", type: { buffer: { length: 32 } } }],\n outputs: { type: { response: { ok: \"bool\", error: \"none\" } } },\n } as TypedAbiFunction<[messageHash: TypedAbiArg<Uint8Array, \"messageHash\">], Response<boolean, null>>,\n getStopAuthority: {\n name: \"get-stop-authority\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"principal\" },\n } as TypedAbiFunction<[], string>,\n getThisChainId: {\n name: \"get-this-chain-id\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[], bigint>,\n getTokenInfo: {\n name: \"get-token-info\",\n access: \"read_only\",\n args: [{ name: \"token-principal-hash\", type: { buffer: { length: 32 } } }],\n outputs: {\n type: {\n response: {\n ok: {\n tuple: [\n { name: \"bridging-fee-conversion-scaling-factor\", type: \"uint128\" },\n { name: \"from-gas-oracle-scaling-factor\", type: \"uint128\" },\n { name: \"pool\", type: \"principal\" },\n { name: \"token\", type: \"principal\" },\n ],\n },\n error: \"uint128\",\n },\n },\n },\n } as TypedAbiFunction<\n [tokenPrincipalHash: TypedAbiArg<Uint8Array, \"tokenPrincipalHash\">],\n Response<\n {\n bridgingFeeConversionScalingFactor: bigint;\n fromGasOracleScalingFactor: bigint;\n pool: string;\n token: string;\n },\n bigint\n >\n >,\n isBridgeTokenSupported: {\n name: \"is-bridge-token-supported\",\n access: \"read_only\",\n args: [\n { name: \"chain-id_\", type: \"uint128\" },\n { name: \"token-address\", type: { buffer: { length: 32 } } },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"none\" } } },\n } as TypedAbiFunction<\n [chainId_: TypedAbiArg<number | bigint, \"chainId_\">, tokenAddress: TypedAbiArg<Uint8Array, \"tokenAddress\">],\n Response<boolean, null>\n >,\n isSwapEnabled: {\n name: \"is-swap-enabled\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"bool\" },\n } as TypedAbiFunction<[], boolean>,\n },\n maps: {\n gasUsageMap: { name: \"gas-usage-map\", key: \"uint128\", value: \"uint128\" } as TypedAbiMap<number | bigint, bigint>,\n messengers: { name: \"messengers\", key: \"uint128\", value: \"principal\" } as TypedAbiMap<number | bigint, string>,\n otherBridgeTokens: {\n name: \"other-bridge-tokens\",\n key: {\n tuple: [\n { name: \"chain-id\", type: \"uint128\" },\n { name: \"token-address\", type: { buffer: { length: 32 } } },\n ],\n },\n value: \"bool\",\n } as TypedAbiMap<\n {\n chainId: number | bigint;\n tokenAddress: Uint8Array;\n },\n boolean\n >,\n otherBridges: { name: \"other-bridges\", key: \"uint128\", value: { buffer: { length: 32 } } } as TypedAbiMap<\n number | bigint,\n Uint8Array\n >,\n processedMessages: { name: \"processed-messages\", key: { buffer: { length: 32 } }, value: \"bool\" } as TypedAbiMap<\n Uint8Array,\n boolean\n >,\n sentMessages: { name: \"sent-messages\", key: { buffer: { length: 32 } }, value: \"bool\" } as TypedAbiMap<\n Uint8Array,\n boolean\n >,\n tokenInfos: {\n name: \"token-infos\",\n key: { buffer: { length: 32 } },\n value: {\n tuple: [\n { name: \"bridging-fee-conversion-scaling-factor\", type: \"uint128\" },\n { name: \"from-gas-oracle-scaling-factor\", type: \"uint128\" },\n { name: \"pool\", type: \"principal\" },\n { name: \"token\", type: \"principal\" },\n ],\n },\n } as TypedAbiMap<\n Uint8Array,\n {\n bridgingFeeConversionScalingFactor: bigint;\n fromGasOracleScalingFactor: bigint;\n pool: string;\n token: string;\n }\n >,\n },\n variables: {\n chainPrecision: {\n name: \"chain-precision\",\n type: \"uint128\",\n access: \"constant\",\n } as TypedAbiVariable<bigint>,\n errAlreadyInitialized: {\n name: \"err-already-initialized\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errAlreadyProcessed: {\n name: \"err-already-processed\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errAlreadySent: {\n name: \"err-already-sent\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errBridgeSourceNotRegistered: {\n name: \"err-bridge-source-not-registered\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errDepositAmountTooSmall: {\n name: \"err-deposit-amount-too-small\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errGasUsageNotSet: {\n name: \"err-gas-usage-not-set\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errMessengerNotRegistered: {\n name: \"err-messenger-not-registered\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errNoMessage: {\n name: \"err-no-message\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errNotEnoughFee: {\n name: \"err-not-enough-fee\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errNotInitialized: {\n name: \"err-not-initialized\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errSwapProhibited: {\n name: \"err-swap-prohibited\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errTokenNotSupported: {\n name: \"err-token-not-supported\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errUnauthorized: {\n name: \"err-unauthorized\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errWrongGasOracle: {\n name: \"err-wrong-gas-oracle\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errWrongMessenger: {\n name: \"err-wrong-messenger\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errWrongTokenForPool: {\n name: \"err-wrong-token-for-pool\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n oraclePrecision: {\n name: \"oracle-precision\",\n type: \"uint128\",\n access: \"constant\",\n } as TypedAbiVariable<bigint>,\n canSwap: {\n name: \"can-swap\",\n type: \"bool\",\n access: \"variable\",\n } as TypedAbiVariable<boolean>,\n gasOraclePrincipal: {\n name: \"gas-oracle-principal\",\n type: {\n optional: \"principal\",\n },\n access: \"variable\",\n } as TypedAbiVariable<string | null>,\n owner: {\n name: \"owner\",\n type: \"principal\",\n access: \"variable\",\n } as TypedAbiVariable<string>,\n rebalancer: {\n name: \"rebalancer\",\n type: \"principal\",\n access: \"variable\",\n } as TypedAbiVariable<string>,\n stopAuthority: {\n name: \"stop-authority\",\n type: \"principal\",\n access: \"variable\",\n } as TypedAbiVariable<string>,\n thisChainId: {\n name: \"this-chain-id\",\n type: {\n optional: \"uint128\",\n },\n access: \"variable\",\n } as TypedAbiVariable<bigint | null>,\n },\n constants: {\n canSwap: false,\n chainPrecision: 6n,\n errAlreadyInitialized: {\n isOk: false,\n value: 1_004n,\n },\n errAlreadyProcessed: {\n isOk: false,\n value: 1_010n,\n },\n errAlreadySent: {\n isOk: false,\n value: 1_005n,\n },\n errBridgeSourceNotRegistered: {\n isOk: false,\n value: 1_009n,\n },\n errDepositAmountTooSmall: {\n isOk: false,\n value: 1_001n,\n },\n errGasUsageNotSet: {\n isOk: false,\n value: 1_008n,\n },\n errMessengerNotRegistered: {\n isOk: false,\n value: 1_014n,\n },\n errNoMessage: {\n isOk: false,\n value: 1_011n,\n },\n errNotEnoughFee: {\n isOk: false,\n value: 1_007n,\n },\n errNotInitialized: {\n isOk: false,\n value: 1_006n,\n },\n errSwapProhibited: {\n isOk: false,\n value: 1_012n,\n },\n errTokenNotSupported: {\n isOk: false,\n value: 1_002n,\n },\n errUnauthorized: {\n isOk: false,\n value: 1_000n,\n },\n errWrongGasOracle: {\n isOk: false,\n value: 1_013n,\n },\n errWrongMessenger: {\n isOk: false,\n value: 1_015n,\n },\n errWrongTokenForPool: {\n isOk: false,\n value: 1_003n,\n },\n gasOraclePrincipal: null,\n oraclePrecision: 18n,\n owner: \"ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM\",\n rebalancer: \"ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM\",\n stopAuthority: \"ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM\",\n thisChainId: null,\n },\n non_fungible_tokens: [],\n fungible_tokens: [],\n epoch: \"Epoch31\",\n clarity_version: \"Clarity3\",\n contractName: \"bridge\",\n },\n ftToken: {\n functions: {\n getTokenUri: {\n name: \"get-token-uri\",\n access: \"public\",\n args: [],\n outputs: { type: { response: { ok: { optional: { \"string-utf8\": { length: 19 } } }, error: \"none\" } } },\n } as TypedAbiFunction<[], Response<string | null, null>>,\n mint: {\n name: \"mint\",\n access: \"public\",\n args: [\n { name: \"amount\", type: \"uint128\" },\n { name: \"recipient\", type: \"principal\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [amount: TypedAbiArg<number | bigint, \"amount\">, recipient: TypedAbiArg<string, \"recipient\">],\n Response<boolean, bigint>\n >,\n transfer: {\n name: \"transfer\",\n access: \"public\",\n args: [\n { name: \"amount\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n { name: \"memo\", type: { optional: { buffer: { length: 34 } } } },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n amount: TypedAbiArg<number | bigint, \"amount\">,\n sender: TypedAbiArg<string, \"sender\">,\n recipient: TypedAbiArg<string, \"recipient\">,\n memo: TypedAbiArg<Uint8Array | null, \"memo\">,\n ],\n Response<boolean, bigint>\n >,\n getBalance: {\n name: \"get-balance\",\n access: \"read_only\",\n args: [{ name: \"owner\", type: \"principal\" }],\n outputs: { type: { response: { ok: \"uint128\", error: \"none\" } } },\n } as TypedAbiFunction<[owner: TypedAbiArg<string, \"owner\">], Response<bigint, null>>,\n getDecimals: {\n name: \"get-decimals\",\n access: \"read_only\",\n args: [],\n outputs: { type: { response: { ok: \"uint128\", error: \"none\" } } },\n } as TypedAbiFunction<[], Response<bigint, null>>,\n getName: {\n name: \"get-name\",\n access: \"read_only\",\n args: [],\n outputs: { type: { response: { ok: { \"string-ascii\": { length: 13 } }, error: \"none\" } } },\n } as TypedAbiFunction<[], Response<string, null>>,\n getSymbol: {\n name: \"get-symbol\",\n access: \"read_only\",\n args: [],\n outputs: { type: { response: { ok: { \"string-ascii\": { length: 7 } }, error: \"none\" } } },\n } as TypedAbiFunction<[], Response<string, null>>,\n getTotalSupply: {\n name: \"get-total-supply\",\n access: \"read_only\",\n args: [],\n outputs: { type: { response: { ok: \"uint128\", error: \"none\" } } },\n } as TypedAbiFunction<[], Response<bigint, null>>,\n },\n maps: {},\n variables: {},\n constants: {},\n non_fungible_tokens: [],\n fungible_tokens: [{ name: \"example-token\" }],\n epoch: \"Epoch31\",\n clarity_version: \"Clarity3\",\n contractName: \"ft-token\",\n },\n gasOracle: {\n functions: {\n setChainData: {\n name: \"set-chain-data\",\n access: \"public\",\n args: [\n { name: \"chain-id_\", type: \"uint128\" },\n { name: \"new-price\", type: \"uint128\" },\n { name: \"new-gas-price\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n chainId_: TypedAbiArg<number | bigint, \"chainId_\">,\n newPrice: TypedAbiArg<number | bigint, \"newPrice\">,\n newGasPrice: TypedAbiArg<number | bigint, \"newGasPrice\">,\n ],\n Response<boolean, bigint>\n >,\n setGasPrice: {\n name: \"set-gas-price\",\n access: \"public\",\n args: [\n { name: \"chain-id_\", type: \"uint128\" },\n { name: \"new-gas-price\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [chainId_: TypedAbiArg<number | bigint, \"chainId_\">, newGasPrice: TypedAbiArg<number | bigint, \"newGasPrice\">],\n Response<boolean, bigint>\n >,\n setPrice: {\n name: \"set-price\",\n access: \"public\",\n args: [\n { name: \"chain-id_\", type: \"uint128\" },\n { name: \"new-price\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [chainId_: TypedAbiArg<number | bigint, \"chainId_\">, newPrice: TypedAbiArg<number | bigint, \"newPrice\">],\n Response<boolean, bigint>\n >,\n crossRate: {\n name: \"cross-rate\",\n access: \"read_only\",\n args: [{ name: \"other-chain-id\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<[otherChainId: TypedAbiArg<number | bigint, \"otherChainId\">], Response<bigint, bigint>>,\n getChainData: {\n name: \"get-chain-data\",\n access: \"read_only\",\n args: [{ name: \"chain-id_\", type: \"uint128\" }],\n outputs: {\n type: {\n response: {\n ok: {\n tuple: [\n { name: \"gas-price\", type: \"uint128\" },\n { name: \"price\", type: \"uint128\" },\n ],\n },\n error: \"uint128\",\n },\n },\n },\n } as TypedAbiFunction<\n [chainId_: TypedAbiArg<number | bigint, \"chainId_\">],\n Response<\n {\n gasPrice: bigint;\n price: bigint;\n },\n bigint\n >\n >,\n getGasPrice: {\n name: \"get-gas-price\",\n access: \"read_only\",\n args: [{ name: \"chain-id_\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<[chainId_: TypedAbiArg<number | bigint, \"chainId_\">], Response<bigint, bigint>>,\n getPrice: {\n name: \"get-price\",\n access: \"read_only\",\n args: [{ name: \"chain-id_\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<[chainId_: TypedAbiArg<number | bigint, \"chainId_\">], Response<bigint, bigint>>,\n getTransactionGasCostInNativeToken: {\n name: \"get-transaction-gas-cost-in-native-token\",\n access: \"read_only\",\n args: [\n { name: \"other-chain-id\", type: \"uint128\" },\n { name: \"gas-amount\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n otherChainId: TypedAbiArg<number | bigint, \"otherChainId\">,\n gasAmount: TypedAbiArg<number | bigint, \"gasAmount\">,\n ],\n Response<bigint, bigint>\n >,\n getTransactionGasCostInUsd: {\n name: \"get-transaction-gas-cost-in-usd\",\n access: \"read_only\",\n args: [\n { name: \"other-chain-id\", type: \"uint128\" },\n { name: \"gas-amount\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n otherChainId: TypedAbiArg<number | bigint, \"otherChainId\">,\n gasAmount: TypedAbiArg<number | bigint, \"gasAmount\">,\n ],\n Response<bigint, bigint>\n >,\n },\n maps: {\n chainData: {\n name: \"chain-data\",\n key: \"uint128\",\n value: {\n tuple: [\n { name: \"gas-price\", type: \"uint128\" },\n { name: \"price\", type: \"uint128\" },\n ],\n },\n } as TypedAbiMap<\n number | bigint,\n {\n gasPrice: bigint;\n price: bigint;\n }\n >,\n },\n variables: {\n errNotFound: {\n name: \"err-not-found\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errUnauthorized: {\n name: \"err-unauthorized\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n oracleScalingFactor: {\n name: \"oracle-scaling-factor\",\n type: \"uint128\",\n access: \"constant\",\n } as TypedAbiVariable<bigint>,\n contractOwner: {\n name: \"contract-owner\",\n type: \"principal\",\n access: \"variable\",\n } as TypedAbiVariable<string>,\n fromOracleToChainScalingFactor: {\n name: \"from-oracle-to-chain-scaling-factor\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n thisChainId: {\n name: \"this-chain-id\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n },\n constants: {\n contractOwner: \"ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM\",\n errNotFound: {\n isOk: false,\n value: 4_001n,\n },\n errUnauthorized: {\n isOk: false,\n value: 4_000n,\n },\n fromOracleToChainScalingFactor: 1_000_000_000_000n,\n oracleScalingFactor: 1_000_000_000_000_000_000n,\n thisChainId: 16n,\n },\n non_fungible_tokens: [],\n fungible_tokens: [],\n epoch: \"Epoch31\",\n clarity_version: \"Clarity3\",\n contractName: \"gas-oracle\",\n },\n gasOracleTrait: {\n functions: {},\n maps: {},\n variables: {},\n constants: {},\n non_fungible_tokens: [],\n fungible_tokens: [],\n epoch: \"Epoch31\",\n clarity_version: \"Clarity3\",\n contractName: \"gas-oracle-trait\",\n },\n messenger: {\n functions: {\n assertGasOracle: {\n name: \"assert-gas-oracle\",\n access: \"private\",\n args: [{ name: \"gas-oracle-ref\", type: \"trait_reference\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[gasOracleRef: TypedAbiArg<string, \"gasOracleRef\">], Response<boolean, bigint>>,\n onlyOwner: {\n name: \"only-owner\",\n access: \"private\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n addSecondaryValidator: {\n name: \"add-secondary-validator\",\n access: \"public\",\n args: [{ name: \"val\", type: { buffer: { length: 33 } } }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[val: TypedAbiArg<Uint8Array, \"val\">], Response<boolean, bigint>>,\n getTransactionCost: {\n name: \"get-transaction-cost\",\n access: \"public\",\n args: [\n { name: \"gas-oracle-ref\", type: \"trait_reference\" },\n { name: \"chain-id_\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [gasOracleRef: TypedAbiArg<string, \"gasOracleRef\">, chainId_: TypedAbiArg<number | bigint, \"chainId_\">],\n Response<bigint, bigint>\n >,\n init: {\n name: \"init\",\n access: \"public\",\n args: [\n { name: \"this-chain-id_\", type: \"uint128\" },\n { name: \"gas-oracle\", type: \"principal\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [thisChainId_: TypedAbiArg<number | bigint, \"thisChainId_\">, gasOracle: TypedAbiArg<string, \"gasOracle\">],\n Response<boolean, bigint>\n >,\n receiveMessage: {\n name: \"receive-message\",\n access: \"public\",\n args: [\n { name: \"message\", type: { buffer: { length: 32 } } },\n { name: \"signature1\", type: { buffer: { length: 65 } } },\n { name: \"signature2\", type: { buffer: { length: 65 } } },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n message: TypedAbiArg<Uint8Array, \"message\">,\n signature1: TypedAbiArg<Uint8Array, \"signature1\">,\n signature2: TypedAbiArg<Uint8Array, \"signature2\">,\n ],\n Response<boolean, bigint>\n >,\n removeSecondaryValidator: {\n name: \"remove-secondary-validator\",\n access: \"public\",\n args: [{ name: \"val\", type: { buffer: { length: 33 } } }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[val: TypedAbiArg<Uint8Array, \"val\">], Response<boolean, bigint>>,\n sendMessage: {\n name: \"send-message\",\n access: \"public\",\n args: [\n { name: \"gas-oracle-ref\", type: \"trait_reference\" },\n { name: \"message\", type: { buffer: { length: 32 } } },\n ],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [gasOracleRef: TypedAbiArg<string, \"gasOracleRef\">, message: TypedAbiArg<Uint8Array, \"message\">],\n Response<bigint, bigint>\n >,\n setGasUsage: {\n name: \"set-gas-usage\",\n access: \"public\",\n args: [\n { name: \"chain-id_\", type: \"uint128\" },\n { name: \"gas\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [chainId_: TypedAbiArg<number | bigint, \"chainId_\">, gas: TypedAbiArg<number | bigint, \"gas\">],\n Response<boolean, bigint>\n >,\n setOtherChainIds: {\n name: \"set-other-chain-ids\",\n access: \"public\",\n args: [{ name: \"value\", type: { buffer: { length: 32 } } }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[value: TypedAbiArg<Uint8Array, \"value\">], Response<boolean, bigint>>,\n setPrimaryValidator: {\n name: \"set-primary-validator\",\n access: \"public\",\n args: [{ name: \"val\", type: { buffer: { length: 33 } } }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[val: TypedAbiArg<Uint8Array, \"val\">], Response<boolean, bigint>>,\n withdrawGasTokens: {\n name: \"withdraw-gas-tokens\",\n access: \"public\",\n args: [{ name: \"amount\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[amount: TypedAbiArg<number | bigint, \"amount\">], Response<boolean, bigint>>,\n getGasOracle: {\n name: \"get-gas-oracle\",\n access: \"read_only\",\n args: [],\n outputs: { type: { response: { ok: \"principal\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<string, bigint>>,\n getGasUsage: {\n name: \"get-gas-usage\",\n access: \"read_only\",\n args: [{ name: \"chain-id_\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<[chainId_: TypedAbiArg<number | bigint, \"chainId_\">], Response<bigint, bigint>>,\n getOtherChainIds: {\n name: \"get-other-chain-ids\",\n access: \"read_only\",\n args: [],\n outputs: { type: { response: { ok: { buffer: { length: 32 } }, error: \"none\" } } },\n } as TypedAbiFunction<[], Response<Uint8Array, null>>,\n getSentMessageBlock: {\n name: \"get-sent-message-block\",\n access: \"read_only\",\n args: [{ name: \"message\", type: { buffer: { length: 32 } } }],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<[message: TypedAbiArg<Uint8Array, \"message\">], Response<bigint, bigint>>,\n getThisChainId: {\n name: \"get-this-chain-id\",\n access: \"read_only\",\n args: [],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<bigint, bigint>>,\n isMessageReceived: {\n name: \"is-message-received\",\n access: \"read_only\",\n args: [{ name: \"message\", type: { buffer: { length: 32 } } }],\n outputs: { type: { response: { ok: \"bool\", error: \"none\" } } },\n } as TypedAbiFunction<[message: TypedAbiArg<Uint8Array, \"message\">], Response<boolean, null>>,\n },\n maps: {\n gasUsageMap: { name: \"gas-usage-map\", key: \"uint128\", value: \"uint128\" } as TypedAbiMap<number | bigint, bigint>,\n receivedMessages: { name: \"received-messages\", key: { buffer: { length: 32 } }, value: \"bool\" } as TypedAbiMap<\n Uint8Array,\n boolean\n >,\n secondaryValidators: {\n name: \"secondary-validators\",\n key: { buffer: { length: 33 } },\n value: \"bool\",\n } as TypedAbiMap<Uint8Array, boolean>,\n sentMessagesBlock: {\n name: \"sent-messages-block\",\n key: { buffer: { length: 32 } },\n value: \"uint128\",\n } as TypedAbiMap<Uint8Array, bigint>,\n },\n variables: {\n errAlreadyInitialized: {\n name: \"err-already-initialized\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errAlreadySent: {\n name: \"err-already-sent\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errGasUsageNotSet: {\n name: \"err-gas-usage-not-set\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errInvalidChainId: {\n name: \"err-invalid-chain-id\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errInvalidDestination: {\n name: \"err-invalid-destination\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errInvalidPrimary: {\n name: \"err-invalid-primary\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errInvalidSecondary: {\n name: \"err-invalid-secondary\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errMessageNotFound: {\n name: \"err-message-not-found\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errNotInitialized: {\n name: \"err-not-initialized\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errUnauthorized: {\n name: \"err-unauthorized\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errWrongBufferLength: {\n name: \"err-wrong-buffer-length\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errWrongGasOracle: {\n name: \"err-wrong-gas-oracle\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n gasOraclePrincipal: {\n name: \"gas-oracle-principal\",\n type: {\n optional: \"principal\",\n },\n access: \"variable\",\n } as TypedAbiVariable<string | null>,\n otherChainIds: {\n name: \"other-chain-ids\",\n type: {\n buffer: {\n length: 32,\n },\n },\n access: \"variable\",\n } as TypedAbiVariable<Uint8Array>,\n owner: {\n name: \"owner\",\n type: \"principal\",\n access: \"variable\",\n } as TypedAbiVariable<string>,\n primaryValidator: {\n name: \"primary-validator\",\n type: {\n buffer: {\n length: 33,\n },\n },\n access: \"variable\",\n } as TypedAbiVariable<Uint8Array>,\n thisChainId: {\n name: \"this-chain-id\",\n type: {\n optional: \"uint128\",\n },\n access: \"variable\",\n } as TypedAbiVariable<bigint | null>,\n },\n constants: {\n errAlreadyInitialized: {\n isOk: false,\n value: 3_008n,\n },\n errAlreadySent: {\n isOk: false,\n value: 3_003n,\n },\n errGasUsageNotSet: {\n isOk: false,\n value: 3_010n,\n },\n errInvalidChainId: {\n isOk: false,\n value: 3_002n,\n },\n errInvalidDestination: {\n isOk: false,\n value: 3_004n,\n },\n errInvalidPrimary: {\n isOk: false,\n value: 3_005n,\n },\n errInvalidSecondary: {\n isOk: false,\n value: 3_006n,\n },\n errMessageNotFound: {\n isOk: false,\n value: 3_001n,\n },\n errNotInitialized: {\n isOk: false,\n value: 3_011n,\n },\n errUnauthorized: {\n isOk: false,\n value: 3_000n,\n },\n errWrongBufferLength: {\n isOk: false,\n value: 3_009n,\n },\n errWrongGasOracle: {\n isOk: false,\n value: 3_007n,\n },\n gasOraclePrincipal: null,\n otherChainIds: Uint8Array.from([\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ]),\n owner: \"ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM\",\n primaryValidator: Uint8Array.from([\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ]),\n thisChainId: null,\n },\n non_fungible_tokens: [],\n fungible_tokens: [],\n epoch: \"Epoch31\",\n clarity_version: \"Clarity3\",\n contractName: \"messenger\",\n },\n messengerTrait: {\n functions: {},\n maps: {},\n variables: {},\n constants: {},\n non_fungible_tokens: [],\n fungible_tokens: [],\n epoch: \"Epoch31\",\n clarity_version: \"Clarity3\",\n contractName: \"messenger-trait\",\n },\n pool: {\n functions: {\n addRewards: {\n name: \"add-rewards\",\n access: \"private\",\n args: [{ name: \"amount\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"none\" } } },\n } as TypedAbiFunction<[amount: TypedAbiArg<number | bigint, \"amount\">], Response<boolean, null>>,\n assertBalanceReatio: {\n name: \"assert-balance-reatio\",\n access: \"private\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n assertCanDeposit: {\n name: \"assert-can-deposit\",\n access: \"private\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n assertCanSwap: {\n name: \"assert-can-swap\",\n access: \"private\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n assertCanWithdraw: {\n name: \"assert-can-withdraw\",\n access: \"private\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n assertToken: {\n name: \"assert-token\",\n access: \"private\",\n args: [{ name: \"ft-ref\", type: \"trait_reference\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[ftRef: TypedAbiArg<string, \"ftRef\">], Response<boolean, bigint>>,\n depositLp: {\n name: \"deposit-lp\",\n access: \"private\",\n args: [\n { name: \"ft-ref\", type: \"trait_reference\" },\n { name: \"to\", type: \"principal\" },\n { name: \"lp-amount\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n ftRef: TypedAbiArg<string, \"ftRef\">,\n to: TypedAbiArg<string, \"to\">,\n lpAmount: TypedAbiArg<number | bigint, \"lpAmount\">,\n ],\n Response<boolean, bigint>\n >,\n leCube_q: {\n name: \"le-cube?\",\n access: \"private\",\n args: [\n { name: \"x\", type: \"uint128\" },\n { name: \"n\", type: \"uint128\" },\n ],\n outputs: { type: \"bool\" },\n } as TypedAbiFunction<[x: TypedAbiArg<number | bigint, \"x\">, n: TypedAbiArg<number | bigint, \"n\">], boolean>,\n newtonStep: {\n name: \"newton-step\",\n access: \"private\",\n args: [\n { name: \"n\", type: \"uint128\" },\n { name: \"x\", type: \"uint128\" },\n ],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[n: TypedAbiArg<number | bigint, \"n\">, x: TypedAbiArg<number | bigint, \"x\">], bigint>,\n onlyBridge: {\n name: \"only-bridge\",\n access: \"private\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n onlyOwner: {\n name: \"only-owner\",\n access: \"private\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n onlyStopAuthority: {\n name: \"only-stop-authority\",\n access: \"private\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n refine: {\n name: \"refine\",\n access: \"private\",\n args: [\n { name: \"n\", type: \"uint128\" },\n { name: \"x\", type: \"uint128\" },\n ],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[n: TypedAbiArg<number | bigint, \"n\">, x: TypedAbiArg<number | bigint, \"x\">], bigint>,\n withdrawLp: {\n name: \"withdraw-lp\",\n access: \"private\",\n args: [\n { name: \"ft-ref\", type: \"trait_reference\" },\n { name: \"from\", type: \"principal\" },\n { name: \"lp-amount\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n ftRef: TypedAbiArg<string, \"ftRef\">,\n from: TypedAbiArg<string, \"from\">,\n lpAmount: TypedAbiArg<number | bigint, \"lpAmount\">,\n ],\n Response<boolean, bigint>\n >,\n adjustTotalLpAmount: {\n name: \"adjust-total-lp-amount\",\n access: \"public\",\n args: [{ name: \"ft-ref\", type: \"trait_reference\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[ftRef: TypedAbiArg<string, \"ftRef\">], Response<boolean, bigint>>,\n claimAdminFee: {\n name: \"claim-admin-fee\",\n access: \"public\",\n args: [{ name: \"ft-ref\", type: \"trait_reference\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[ftRef: TypedAbiArg<string, \"ftRef\">], Response<boolean, bigint>>,\n claimRewards: {\n name: \"claim-rewards\",\n access: \"public\",\n args: [{ name: \"ft-ref\", type: \"trait_reference\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[ftRef: TypedAbiArg<string, \"ftRef\">], Response<boolean, bigint>>,\n deposit: {\n name: \"deposit\",\n access: \"public\",\n args: [\n { name: \"amount\", type: \"uint128\" },\n { name: \"ft-ref\", type: \"trait_reference\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [amount: TypedAbiArg<number | bigint, \"amount\">, ftRef: TypedAbiArg<string, \"ftRef\">],\n Response<boolean, bigint>\n >,\n init: {\n name: \"init\",\n access: \"public\",\n args: [\n { name: \"token\", type: \"trait_reference\" },\n { name: \"bridge-address\", type: \"principal\" },\n { name: \"fee-share-bp-arg\", type: \"uint128\" },\n { name: \"balance-ratio-min-bp-arg\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n token: TypedAbiArg<string, \"token\">,\n bridgeAddress: TypedAbiArg<string, \"bridgeAddress\">,\n feeShareBpArg: TypedAbiArg<number | bigint, \"feeShareBpArg\">,\n balanceRatioMinBpArg: TypedAbiArg<number | bigint, \"balanceRatioMinBpArg\">,\n ],\n Response<boolean, bigint>\n >,\n serBalanceRetioMinBp: {\n name: \"ser-balance-retio-min-bp\",\n access: \"public\",\n args: [{ name: \"new-balance-ratio-min-bp\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [newBalanceRatioMinBp: TypedAbiArg<number | bigint, \"newBalanceRatioMinBp\">],\n Response<boolean, bigint>\n >,\n setAdminFeeSahreBp: {\n name: \"set-admin-fee-sahre-bp\",\n access: \"public\",\n args: [{ name: \"new-admin-fee-share-bp\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [newAdminFeeShareBp: TypedAbiArg<number | bigint, \"newAdminFeeShareBp\">],\n Response<boolean, bigint>\n >,\n setBridge: {\n name: \"set-bridge\",\n access: \"public\",\n args: [{ name: \"new-bridge\", type: \"principal\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[newBridge: TypedAbiArg<string, \"newBridge\">], Response<boolean, bigint>>,\n setFeeShare: {\n name: \"set-fee-share\",\n access: \"public\",\n args: [{ name: \"fee-share-bp_\", type: \"uint128\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[feeShareBp_: TypedAbiArg<number | bigint, \"feeShareBp_\">], Response<boolean, bigint>>,\n setOwner: {\n name: \"set-owner\",\n access: \"public\",\n args: [{ name: \"new-owner\", type: \"principal\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[newOwner: TypedAbiArg<string, \"newOwner\">], Response<boolean, bigint>>,\n setStopAuthority: {\n name: \"set-stop-authority\",\n access: \"public\",\n args: [{ name: \"new-stop-authority\", type: \"principal\" }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[newStopAuthority: TypedAbiArg<string, \"newStopAuthority\">], Response<boolean, bigint>>,\n startDeposit: {\n name: \"start-deposit\",\n access: \"public\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n startSwap: {\n name: \"start-swap\",\n access: \"public\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n startWithdraw: {\n name: \"start-withdraw\",\n access: \"public\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n stopDeposit: {\n name: \"stop-deposit\",\n access: \"public\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n stopSwap: {\n name: \"stop-swap\",\n access: \"public\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n stopWithdraw: {\n name: \"stop-withdraw\",\n access: \"public\",\n args: [],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<boolean, bigint>>,\n swapFromVusd: {\n name: \"swap-from-vusd\",\n access: \"public\",\n args: [\n { name: \"ft-ref\", type: \"trait_reference\" },\n { name: \"user\", type: \"principal\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"receive-amount-min\", type: \"uint128\" },\n { name: \"zero-fee\", type: \"bool\" },\n ],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n ftRef: TypedAbiArg<string, \"ftRef\">,\n user: TypedAbiArg<string, \"user\">,\n amount: TypedAbiArg<number | bigint, \"amount\">,\n receiveAmountMin: TypedAbiArg<number | bigint, \"receiveAmountMin\">,\n zeroFee: TypedAbiArg<boolean, \"zeroFee\">,\n ],\n Response<bigint, bigint>\n >,\n swapToVusd: {\n name: \"swap-to-vusd\",\n access: \"public\",\n args: [\n { name: \"ft-ref\", type: \"trait_reference\" },\n { name: \"user\", type: \"principal\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"zero-fee\", type: \"bool\" },\n ],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n ftRef: TypedAbiArg<string, \"ftRef\">,\n user: TypedAbiArg<string, \"user\">,\n amount: TypedAbiArg<number | bigint, \"amount\">,\n zeroFee: TypedAbiArg<boolean, \"zeroFee\">,\n ],\n Response<bigint, bigint>\n >,\n withdraw: {\n name: \"withdraw\",\n access: \"public\",\n args: [\n { name: \"amount-lp\", type: \"uint128\" },\n { name: \"ft-ref\", type: \"trait_reference\" },\n ],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [amountLp: TypedAbiArg<number | bigint, \"amountLp\">, ftRef: TypedAbiArg<string, \"ftRef\">],\n Response<boolean, bigint>\n >,\n calcD: {\n name: \"calc-d\",\n access: \"read_only\",\n args: [\n { name: \"x\", type: \"uint128\" },\n { name: \"y\", type: \"uint128\" },\n ],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[x: TypedAbiArg<number | bigint, \"x\">, y: TypedAbiArg<number | bigint, \"y\">], bigint>,\n calcY: {\n name: \"calc-y\",\n access: \"read_only\",\n args: [\n { name: \"x\", type: \"uint128\" },\n { name: \"d_\", type: \"uint128\" },\n ],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[x: TypedAbiArg<number | bigint, \"x\">, d_: TypedAbiArg<number | bigint, \"d_\">], bigint>,\n cbrt: {\n name: \"cbrt\",\n access: \"read_only\",\n args: [{ name: \"n\", type: \"uint128\" }],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[n: TypedAbiArg<number | bigint, \"n\">], bigint>,\n fromSystemPrecision: {\n name: \"from-system-precision\",\n access: \"read_only\",\n args: [{ name: \"amount\", type: \"uint128\" }],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[amount: TypedAbiArg<number | bigint, \"amount\">], bigint>,\n getAccRewardPerShareP: {\n name: \"get-acc-reward-per-share-p\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[], bigint>,\n getAdminFeeAmount: {\n name: \"get-admin-fee-amount\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[], bigint>,\n getAdminFeeShareBp: {\n name: \"get-admin-fee-share-bp\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[], bigint>,\n getBalanceRatioMinBp: {\n name: \"get-balance-ratio-min-bp\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[], bigint>,\n getBridge: {\n name: \"get-bridge\",\n access: \"read_only\",\n args: [],\n outputs: { type: { optional: \"principal\" } },\n } as TypedAbiFunction<[], string | null>,\n getCanDeposit: {\n name: \"get-can-deposit\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"bool\" },\n } as TypedAbiFunction<[], boolean>,\n getCanSwap: {\n name: \"get-can-swap\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"bool\" },\n } as TypedAbiFunction<[], boolean>,\n getCanWithdraw: {\n name: \"get-can-withdraw\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"bool\" },\n } as TypedAbiFunction<[], boolean>,\n getD: { name: \"get-d\", access: \"read_only\", args: [], outputs: { type: \"uint128\" } } as TypedAbiFunction<\n [],\n bigint\n >,\n getFeeShareBp: {\n name: \"get-fee-share-bp\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[], bigint>,\n getLpBalance: {\n name: \"get-lp-balance\",\n access: \"read_only\",\n args: [{ name: \"user\", type: \"principal\" }],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[user: TypedAbiArg<string, \"user\">], bigint>,\n getLpTotalSupply: {\n name: \"get-lp-total-supply\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[], bigint>,\n getOwner: {\n name: \"get-owner\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"principal\" },\n } as TypedAbiFunction<[], string>,\n getReserves: {\n name: \"get-reserves\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[], bigint>,\n getStopAuthority: {\n name: \"get-stop-authority\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"principal\" },\n } as TypedAbiFunction<[], string>,\n getTokenAddress: {\n name: \"get-token-address\",\n access: \"read_only\",\n args: [],\n outputs: { type: { response: { ok: \"principal\", error: \"uint128\" } } },\n } as TypedAbiFunction<[], Response<string, bigint>>,\n getTokenBalance: {\n name: \"get-token-balance\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[], bigint>,\n getUserRewardDebt: {\n name: \"get-user-reward-debt\",\n access: \"read_only\",\n args: [{ name: \"user\", type: \"principal\" }],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[user: TypedAbiArg<string, \"user\">], bigint>,\n getVusdBalance: {\n name: \"get-vusd-balance\",\n access: \"read_only\",\n args: [],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[], bigint>,\n pendingRewards: {\n name: \"pending-rewards\",\n access: \"read_only\",\n args: [{ name: \"user\", type: \"principal\" }],\n outputs: { type: { response: { ok: \"uint128\", error: \"none\" } } },\n } as TypedAbiFunction<[user: TypedAbiArg<string, \"user\">], Response<bigint, null>>,\n toSystemPrecision: {\n name: \"to-system-precision\",\n access: \"read_only\",\n args: [{ name: \"amount\", type: \"uint128\" }],\n outputs: { type: \"uint128\" },\n } as TypedAbiFunction<[amount: TypedAbiArg<number | bigint, \"amount\">], bigint>,\n },\n maps: {\n lpBalances: { name: \"lp-balances\", key: \"principal\", value: \"uint128\" } as TypedAbiMap<string, bigint>,\n userRewardDebt: { name: \"user-reward-debt\", key: \"principal\", value: \"uint128\" } as TypedAbiMap<string, bigint>,\n },\n variables: {\n BP: {\n name: \"BP\",\n type: \"uint128\",\n access: \"constant\",\n } as TypedAbiVariable<bigint>,\n P: {\n name: \"P\",\n type: \"uint128\",\n access: \"constant\",\n } as TypedAbiVariable<bigint>,\n a: {\n name: \"a\",\n type: \"uint128\",\n access: \"constant\",\n } as TypedAbiVariable<bigint>,\n errAlreadyInitialized: {\n name: \"err-already-initialized\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errDepositAmountTooSmall: {\n name: \"err-deposit-amount-too-small\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errDepositProhibited: {\n name: \"err-deposit-prohibited\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errLowTokenBalance: {\n name: \"err-low-token-balance\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errLowVusdBalance: {\n name: \"err-low-vusd-balance\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errNotEnoughLp: {\n name: \"err-not-enough-lp\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errNotEnoughReserves: {\n name: \"err-not-enough-reserves\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errNotInitialized: {\n name: \"err-not-initialized\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errPoolBalanceTooBig: {\n name: \"err-pool-balance-too-big\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errSlippage: {\n name: \"err-slippage\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errSwapProhibited: {\n name: \"err-swap-prohibited\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errTooLarge: {\n name: \"err-too-large\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errUnauthorized: {\n name: \"err-unauthorized\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errWithdrawProhibited: {\n name: \"err-withdraw-prohibited\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errWrongToken: {\n name: \"err-wrong-token\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errZeroChanges: {\n name: \"err-zero-changes\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errZeroDChanges: {\n name: \"err-zero-d-changes\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n maxTokenBalance: {\n name: \"max-token-balance\",\n type: \"uint128\",\n access: \"constant\",\n } as TypedAbiVariable<bigint>,\n systemPrecision: {\n name: \"system-precision\",\n type: \"uint128\",\n access: \"constant\",\n } as TypedAbiVariable<bigint>,\n accRewardPerShareP: {\n name: \"acc-reward-per-share-p\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n adminFeeAmount: {\n name: \"admin-fee-amount\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n adminFeeShareBp: {\n name: \"admin-fee-share-bp\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n balanceRatioMinBp: {\n name: \"balance-ratio-min-bp\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n bridge: {\n name: \"bridge\",\n type: {\n optional: \"principal\",\n },\n access: \"variable\",\n } as TypedAbiVariable<string | null>,\n canDeposit: {\n name: \"can-deposit\",\n type: \"bool\",\n access: \"variable\",\n } as TypedAbiVariable<boolean>,\n canSwap: {\n name: \"can-swap\",\n type: \"bool\",\n access: \"variable\",\n } as TypedAbiVariable<boolean>,\n canWithdraw: {\n name: \"can-withdraw\",\n type: \"bool\",\n access: \"variable\",\n } as TypedAbiVariable<boolean>,\n d: {\n name: \"d\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n feeShareBp: {\n name: \"fee-share-bp\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n lpTotalSupply: {\n name: \"lp-total-supply\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n owner: {\n name: \"owner\",\n type: \"principal\",\n access: \"variable\",\n } as TypedAbiVariable<string>,\n reserves: {\n name: \"reserves\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n stopAuthority: {\n name: \"stop-authority\",\n type: \"principal\",\n access: \"variable\",\n } as TypedAbiVariable<string>,\n tokenAmountIncrease: {\n name: \"token-amount-increase\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n tokenAmountReduce: {\n name: \"token-amount-reduce\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n tokenBalance: {\n name: \"token-balance\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n tokenPrincipal: {\n name: \"token-principal\",\n type: {\n optional: \"principal\",\n },\n access: \"variable\",\n } as TypedAbiVariable<string | null>,\n vusdBalance: {\n name: \"vusd-balance\",\n type: \"uint128\",\n access: \"variable\",\n } as TypedAbiVariable<bigint>,\n },\n constants: {\n BP: 10_000n,\n P: 48n,\n a: 20n,\n accRewardPerShareP: 0n,\n adminFeeAmount: 0n,\n adminFeeShareBp: 0n,\n balanceRatioMinBp: 0n,\n bridge: null,\n canDeposit: true,\n canSwap: true,\n canWithdraw: true,\n d: 0n,\n errAlreadyInitialized: {\n isOk: false,\n value: 2_007n,\n },\n errDepositAmountTooSmall: {\n isOk: false,\n value: 2_001n,\n },\n errDepositProhibited: {\n isOk: false,\n value: 2_013n,\n },\n errLowTokenBalance: {\n isOk: false,\n value: 2_012n,\n },\n errLowVusdBalance: {\n isOk: false,\n value: 2_011n,\n },\n errNotEnoughLp: {\n isOk: false,\n value: 2_010n,\n },\n errNotEnoughReserves: {\n isOk: false,\n value: 2_005n,\n },\n errNotInitialized: {\n isOk: false,\n value: 2_006n,\n },\n errPoolBalanceTooBig: {\n isOk: false,\n value: 2_002n,\n },\n errSlippage: {\n isOk: false,\n value: 2_009n,\n },\n errSwapProhibited: {\n isOk: false,\n value: 2_015n,\n },\n errTooLarge: {\n isOk: false,\n value: 2_016n,\n },\n errUnauthorized: {\n isOk: false,\n value: 2_000n,\n },\n errWithdrawProhibited: {\n isOk: false,\n value: 2_014n,\n },\n errWrongToken: {\n isOk: false,\n value: 2_008n,\n },\n errZeroChanges: {\n isOk: false,\n value: 2_003n,\n },\n errZeroDChanges: {\n isOk: false,\n value: 2_004n,\n },\n feeShareBp: 0n,\n lpTotalSupply: 0n,\n maxTokenBalance: 1_000_000_000_000n,\n owner: \"ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM\",\n reserves: 0n,\n stopAuthority: \"ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM\",\n systemPrecision: 3n,\n tokenAmountIncrease: 0n,\n tokenAmountReduce: 0n,\n tokenBalance: 0n,\n tokenPrincipal: null,\n vusdBalance: 0n,\n },\n non_fungible_tokens: [],\n fungible_tokens: [],\n epoch: \"Epoch31\",\n clarity_version: \"Clarity3\",\n contractName: \"pool\",\n },\n poolTrait: {\n functions: {},\n maps: {},\n variables: {},\n constants: {},\n non_fungible_tokens: [],\n fungible_tokens: [],\n epoch: \"Epoch31\",\n clarity_version: \"Clarity3\",\n contractName: \"pool-trait\",\n },\n sip010TraitFtStandard: {\n functions: {},\n maps: {},\n variables: {},\n constants: {},\n non_fungible_tokens: [],\n fungible_tokens: [],\n epoch: \"Epoch21\",\n clarity_version: \"Clarity1\",\n contractName: \"sip-010-trait-ft-standard\",\n },\n utils: {\n functions: {\n assertNotEmptyBuff32: {\n name: \"assert-not-empty-buff-32\",\n access: \"read_only\",\n args: [{ name: \"b\", type: { buffer: { length: 32 } } }],\n outputs: { type: { response: { ok: \"bool\", error: \"uint128\" } } },\n } as TypedAbiFunction<[b: TypedAbiArg<Uint8Array, \"b\">], Response<boolean, bigint>>,\n bufferByte: {\n name: \"buffer-byte\",\n access: \"read_only\",\n args: [\n { name: \"b\", type: { buffer: { length: 32 } } },\n { name: \"i\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: { buffer: { length: 1 } }, error: \"uint128\" } } },\n } as TypedAbiFunction<\n [b: TypedAbiArg<Uint8Array, \"b\">, i: TypedAbiArg<number | bigint, \"i\">],\n Response<Uint8Array, bigint>\n >,\n bufferByteUint: {\n name: \"buffer-byte-uint\",\n access: \"read_only\",\n args: [\n { name: \"b\", type: { buffer: { length: 32 } } },\n { name: \"i\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: \"uint128\", error: \"uint128\" } } },\n } as TypedAbiFunction<\n [b: TypedAbiArg<Uint8Array, \"b\">, i: TypedAbiArg<number | bigint, \"i\">],\n Response<bigint, bigint>\n >,\n hashMessage: {\n name: \"hash-message\",\n access: \"read_only\",\n args: [\n { name: \"amount\", type: \"uint128\" },\n { name: \"recipient\", type: { buffer: { length: 32 } } },\n { name: \"source-chain-id\", type: \"uint128\" },\n { name: \"destination-chain-id\", type: \"uint128\" },\n { name: \"receive-token\", type: { buffer: { length: 32 } } },\n { name: \"nonce\", type: { buffer: { length: 32 } } },\n { name: \"messenger-id\", type: \"uint128\" },\n ],\n outputs: { type: { response: { ok: { buffer: { length: 32 } }, error: \"uint128\" } } },\n } as TypedAbiFunction<\n [\n amount: TypedAbiArg<number | bigint, \"amount\">,\n recipient: TypedAbiArg<Uint8Array, \"recipient\">,\n sourceChainId: TypedAbiArg<number | bigint, \"sourceChainId\">,\n destinationChainId: TypedAbiArg<number | bigint, \"destinationChainId\">,\n receiveToken: TypedAbiArg<Uint8Array, \"receiveToken\">,\n nonce: TypedAbiArg<Uint8Array, \"nonce\">,\n messengerId: TypedAbiArg<number | bigint, \"messengerId\">,\n ],\n Response<Uint8Array, bigint>\n >,\n hashWithSenderAddress: {\n name: \"hash-with-sender-address\",\n access: \"read_only\",\n args: [\n { name: \"message\", type: { buffer: { length: 32 } } },\n { name: \"sender\", type: { buffer: { length: 32 } } },\n ],\n outputs: { type: { response: { ok: { buffer: { length: 32 } }, error: \"uint128\" } } },\n } as TypedAbiFunction<\n [message: TypedAbiArg<Uint8Array, \"message\">, sender: TypedAbiArg<Uint8Array, \"sender\">],\n Response<Uint8Array, bigint>\n >,\n principalHash: {\n name: \"principal-hash\",\n access: \"read_only\",\n args: [{ name: \"value\", type: \"principal\" }],\n outputs: { type: { buffer: { length: 32 } } },\n } as TypedAbiFunction<[value: TypedAbiArg<string, \"value\">], Uint8Array>,\n principalToBuff32: {\n name: \"principal-to-buff32\",\n access: \"read_only\",\n args: [{ name: \"value\", type: \"principal\" }],\n outputs: { type: { buffer: { length: 32 } } },\n } as TypedAbiFunction<[value: TypedAbiArg<string, \"value\">], Uint8Array>,\n stringToBuff: {\n name: \"string-to-buff\",\n access: \"read_only\",\n args: [{ name: \"str\", type: { \"string-ascii\": { length: 40 } } }],\n outputs: { type: { buffer: { length: 45 } } },\n } as TypedAbiFunction<[str: TypedAbiArg<string, \"str\">], Uint8Array>,\n uintToBuff1: {\n name: \"uint-to-buff-1\",\n access: \"read_only\",\n args: [{ name: \"value\", type: \"uint128\" }],\n outputs: { type: { buffer: { length: 17 } } },\n } as TypedAbiFunction<[value: TypedAbiArg<number | bigint, \"value\">], Uint8Array>,\n uintToBuff32: {\n name: \"uint-to-buff-32\",\n access: \"read_only\",\n args: [{ name: \"value\", type: \"uint128\" }],\n outputs: { type: { buffer: { length: 33 } } },\n } as TypedAbiFunction<[value: TypedAbiArg<number | bigint, \"value\">], Uint8Array>,\n },\n maps: {},\n variables: {\n errEmptyBuffer: {\n name: \"err-empty-buffer\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errWrongBufferLength: {\n name: \"err-wrong-buffer-length\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n errWrongMsgLength: {\n name: \"err-wrong-msg-length\",\n type: {\n response: {\n ok: \"none\",\n error: \"uint128\",\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Response<null, bigint>>,\n thisChainId: {\n name: \"this-chain-id\",\n type: \"uint128\",\n access: \"constant\",\n } as TypedAbiVariable<bigint>,\n zeroBytes12: {\n name: \"zero-bytes-12\",\n type: {\n buffer: {\n length: 12,\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Uint8Array>,\n zeroBytes16: {\n name: \"zero-bytes-16\",\n type: {\n buffer: {\n length: 16,\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Uint8Array>,\n zeroBytes32: {\n name: \"zero-bytes-32\",\n type: {\n buffer: {\n length: 32,\n },\n },\n access: \"constant\",\n } as TypedAbiVariable<Uint8Array>,\n },\n constants: {\n errEmptyBuffer: {\n isOk: false,\n value: 5_002n,\n },\n errWrongBufferLength: {\n isOk: false,\n value: 5_000n,\n },\n errWrongMsgLength: {\n isOk: false,\n value: 5_001n,\n },\n thisChainId: 16n,\n zeroBytes12: Uint8Array.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),\n zeroBytes16: Uint8Array.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),\n zeroBytes32: Uint8Array.from([\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ]),\n },\n non_fungible_tokens: [],\n fungible_tokens: [],\n epoch: \"Epoch31\",\n clarity_version: \"Clarity3\",\n contractName: \"utils\",\n },\n} as const;\n"]}
@@ -14,6 +14,7 @@ const alg_1 = require("./alg");
14
14
  const evm_1 = require("./evm");
15
15
  const sol_1 = require("./sol");
16
16
  const srb_1 = require("./srb");
17
+ const stx_1 = require("./stx");
17
18
  const sui_1 = require("./sui");
18
19
  const trx_1 = require("./trx");
19
20
  class DefaultTokenService {
@@ -36,14 +37,14 @@ class DefaultTokenService {
36
37
  }
37
38
  async approve(provider, approveData) {
38
39
  if (approveData.amount) {
39
- (0, utils_1.validateAmountGtZero)(approveData.amount);
40
+ (0, utils_1.validateAmountGteZero)(approveData.amount);
40
41
  (0, utils_1.validateAmountDecimals)("amount", approveData.amount, approveData.token.decimals);
41
42
  }
42
43
  return this.getChainTokenService(approveData.token.chainSymbol, approveData.owner, provider).approve(this.prepareApproveParams(approveData));
43
44
  }
44
45
  async buildRawTransactionApprove(approveData, provider) {
45
46
  if (approveData.amount) {
46
- (0, utils_1.validateAmountGtZero)(approveData.amount);
47
+ (0, utils_1.validateAmountGteZero)(approveData.amount);
47
48
  (0, utils_1.validateAmountDecimals)("amount", approveData.amount, approveData.token.decimals);
48
49
  }
49
50
  return this.getChainTokenService(approveData.token.chainSymbol, approveData.owner, provider).buildRawTransactionApprove(this.prepareApproveParams(approveData));
@@ -108,6 +109,10 @@ class DefaultTokenService {
108
109
  return new alg_1.AlgTokenService(algorand, this.api);
109
110
  }
110
111
  }
112
+ case index_1.ChainType.STX: {
113
+ const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);
114
+ return new stx_1.StxTokenService(nodeRpcUrl, this.params, this.api);
115
+ }
111
116
  }
112
117
  }
113
118
  prepareCheckAllowanceParams(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/token/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { AlgorandClient } from \"@algorandfoundation/algokit-utils\";\nimport { Algodv2 } from \"algosdk\";\nimport { Big } from \"big.js\";\nimport { TronWeb } from \"tronweb\";\nimport { Web3 } from \"web3\";\nimport { Chains } from \"../../chains\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { AllbridgeCoreSdkOptions, ChainType, EssentialWeb3 } from \"../../index\";\nimport { AmountFormat, AmountFormatted } from \"../../models\";\nimport { convertFloatAmountToInt, convertIntAmountToFloat } from \"../../utils/calculation\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { GetNativeTokenBalanceParams } from \"../bridge/models\";\nimport { NodeRpcUrlsConfig } from \"../index\";\nimport { Provider, RawTransaction, TransactionResponse } from \"../models\";\nimport { AlgTokenService } from \"./alg\";\nimport { EvmTokenService } from \"./evm\";\nimport {\n ApproveParams,\n ApproveParamsDto,\n ChainTokenService,\n CheckAllowanceParams,\n CheckAllowanceParamsDto,\n GetAllowanceParams,\n GetTokenBalanceParams,\n} from \"./models\";\nimport { SolanaTokenService } from \"./sol\";\nimport { SrbTokenService } from \"./srb\";\nimport { SuiTokenService } from \"./sui\";\nimport { TronTokenService } from \"./trx\";\n\nexport interface TokenService {\n getAllowance(params: GetAllowanceParams, provider?: Provider): Promise<string>;\n\n checkAllowance(params: CheckAllowanceParams, provider?: Provider): Promise<boolean>;\n\n approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse>;\n\n buildRawTransactionApprove(approveData: ApproveParams, provider?: Provider): Promise<RawTransaction>;\n\n getTokenBalance(params: GetTokenBalanceParams, provider?: Provider): Promise<string>;\n\n getNativeTokenBalance(params: GetNativeTokenBalanceParams, provider?: Provider): Promise<AmountFormatted>;\n}\n\nexport class DefaultTokenService implements TokenService {\n constructor(\n readonly api: AllbridgeCoreClient,\n readonly nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n readonly params: AllbridgeCoreSdkOptions\n ) {}\n\n async getAllowance(params: GetAllowanceParams, provider?: Provider): Promise<string> {\n const allowanceInt = await this.getChainTokenService(params.token.chainSymbol, params.owner, provider).getAllowance(\n params\n );\n return convertIntAmountToFloat(allowanceInt, params.token.decimals).toFixed();\n }\n\n async checkAllowance(params: CheckAllowanceParams, provider?: Provider): Promise<boolean> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, params.token.decimals);\n return this.getChainTokenService(params.token.chainSymbol, params.owner, provider).checkAllowance(\n this.prepareCheckAllowanceParams(params)\n );\n }\n\n async approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse> {\n if (approveData.amount) {\n validateAmountGtZero(approveData.amount);\n validateAmountDecimals(\"amount\", approveData.amount, approveData.token.decimals);\n }\n return this.getChainTokenService(approveData.token.chainSymbol, approveData.owner, provider).approve(\n this.prepareApproveParams(approveData)\n );\n }\n\n async buildRawTransactionApprove(approveData: ApproveParams, provider?: Provider): Promise<RawTransaction> {\n if (approveData.amount) {\n validateAmountGtZero(approveData.amount);\n validateAmountDecimals(\"amount\", approveData.amount, approveData.token.decimals);\n }\n return this.getChainTokenService(\n approveData.token.chainSymbol,\n approveData.owner,\n provider\n ).buildRawTransactionApprove(this.prepareApproveParams(approveData));\n }\n\n async getTokenBalance(params: GetTokenBalanceParams, provider?: Provider): Promise<string> {\n const tokenBalance = await this.getChainTokenService(\n params.token.chainSymbol,\n params.account,\n provider\n ).getTokenBalance(params);\n if (params.token.decimals) {\n return convertIntAmountToFloat(tokenBalance, params.token.decimals).toFixed();\n }\n return tokenBalance;\n }\n\n async getNativeTokenBalance(params: GetNativeTokenBalanceParams, provider?: Provider): Promise<AmountFormatted> {\n const tokenBalance = await this.getChainTokenService(\n params.chainSymbol,\n params.account,\n provider\n ).getNativeTokenBalance(params);\n return {\n [AmountFormat.INT]: tokenBalance,\n [AmountFormat.FLOAT]: convertIntAmountToFloat(\n tokenBalance,\n Chains.getChainDecimalsByType(Chains.getChainProperty(params.chainSymbol).chainType)\n ).toFixed(),\n };\n }\n\n private getChainTokenService(chainSymbol: string, ownerAddress: string, provider?: Provider): ChainTokenService {\n switch (Chains.getChainProperty(chainSymbol).chainType) {\n case ChainType.EVM: {\n if (provider) {\n return new EvmTokenService(provider as EssentialWeb3, this.api);\n } else {\n const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n return new EvmTokenService(new Web3(nodeRpcUrl), this.api);\n }\n }\n case ChainType.TRX: {\n if (provider) {\n return new TronTokenService(provider as TronWeb, this.api);\n } else {\n const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const tronWeb = new TronWeb({ fullHost: nodeRpcUrl });\n tronWeb.setAddress(ownerAddress);\n return new TronTokenService(tronWeb, this.api);\n }\n }\n case ChainType.SOLANA: {\n const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n return new SolanaTokenService(nodeRpcUrl, this.api);\n }\n case ChainType.SRB: {\n return new SrbTokenService(this.nodeRpcUrlsConfig, this.params, this.api);\n }\n case ChainType.SUI: {\n return new SuiTokenService(this.nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol), this.api);\n }\n case ChainType.ALG: {\n if (provider) {\n const algod = provider as Algodv2;\n const algorand = AlgorandClient.fromClients({ algod });\n return new AlgTokenService(algorand, this.api);\n } else {\n const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const algorand = AlgorandClient.fromConfig({\n algodConfig: { server: nodeRpcUrl },\n });\n return new AlgTokenService(algorand, this.api);\n }\n }\n }\n }\n\n prepareCheckAllowanceParams(params: CheckAllowanceParams): CheckAllowanceParamsDto {\n return {\n ...params,\n amount: convertFloatAmountToInt(params.amount, params.token.decimals),\n };\n }\n\n private prepareApproveParams(approveData: ApproveParams): ApproveParamsDto {\n return {\n tokenAddress: approveData.token.tokenAddress,\n owner: approveData.owner,\n spender: approveData.spender,\n chainSymbol: approveData.token.chainSymbol,\n amount: approveData.amount == undefined ? undefined : Big(approveData.amount).toFixed(),\n };\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/token/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { AlgorandClient } from \"@algorandfoundation/algokit-utils\";\nimport { Algodv2 } from \"algosdk\";\nimport { Big } from \"big.js\";\nimport { TronWeb } from \"tronweb\";\nimport { Web3 } from \"web3\";\nimport { Chains } from \"../../chains\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { AllbridgeCoreSdkOptions, ChainType, EssentialWeb3 } from \"../../index\";\nimport { AmountFormat, AmountFormatted } from \"../../models\";\nimport { convertFloatAmountToInt, convertIntAmountToFloat } from \"../../utils/calculation\";\nimport { validateAmountDecimals, validateAmountGteZero, validateAmountGtZero } from \"../../utils/utils\";\nimport { GetNativeTokenBalanceParams } from \"../bridge/models\";\nimport { NodeRpcUrlsConfig } from \"../index\";\nimport { Provider, RawTransaction, TransactionResponse } from \"../models\";\nimport { AlgTokenService } from \"./alg\";\nimport { EvmTokenService } from \"./evm\";\nimport {\n ApproveParams,\n ApproveParamsDto,\n ChainTokenService,\n CheckAllowanceParams,\n CheckAllowanceParamsDto,\n GetAllowanceParams,\n GetTokenBalanceParams,\n} from \"./models\";\nimport { SolanaTokenService } from \"./sol\";\nimport { SrbTokenService } from \"./srb\";\nimport { StxTokenService } from \"./stx\";\nimport { SuiTokenService } from \"./sui\";\nimport { TronTokenService } from \"./trx\";\n\nexport interface TokenService {\n getAllowance(params: GetAllowanceParams, provider?: Provider): Promise<string>;\n\n checkAllowance(params: CheckAllowanceParams, provider?: Provider): Promise<boolean>;\n\n approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse>;\n\n buildRawTransactionApprove(approveData: ApproveParams, provider?: Provider): Promise<RawTransaction>;\n\n getTokenBalance(params: GetTokenBalanceParams, provider?: Provider): Promise<string>;\n\n getNativeTokenBalance(params: GetNativeTokenBalanceParams, provider?: Provider): Promise<AmountFormatted>;\n}\n\nexport class DefaultTokenService implements TokenService {\n constructor(\n readonly api: AllbridgeCoreClient,\n readonly nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n readonly params: AllbridgeCoreSdkOptions\n ) {}\n\n async getAllowance(params: GetAllowanceParams, provider?: Provider): Promise<string> {\n const allowanceInt = await this.getChainTokenService(params.token.chainSymbol, params.owner, provider).getAllowance(\n params\n );\n return convertIntAmountToFloat(allowanceInt, params.token.decimals).toFixed();\n }\n\n async checkAllowance(params: CheckAllowanceParams, provider?: Provider): Promise<boolean> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, params.token.decimals);\n return this.getChainTokenService(params.token.chainSymbol, params.owner, provider).checkAllowance(\n this.prepareCheckAllowanceParams(params)\n );\n }\n\n async approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse> {\n if (approveData.amount) {\n validateAmountGteZero(approveData.amount);\n validateAmountDecimals(\"amount\", approveData.amount, approveData.token.decimals);\n }\n return this.getChainTokenService(approveData.token.chainSymbol, approveData.owner, provider).approve(\n this.prepareApproveParams(approveData)\n );\n }\n\n async buildRawTransactionApprove(approveData: ApproveParams, provider?: Provider): Promise<RawTransaction> {\n if (approveData.amount) {\n validateAmountGteZero(approveData.amount);\n validateAmountDecimals(\"amount\", approveData.amount, approveData.token.decimals);\n }\n return this.getChainTokenService(\n approveData.token.chainSymbol,\n approveData.owner,\n provider\n ).buildRawTransactionApprove(this.prepareApproveParams(approveData));\n }\n\n async getTokenBalance(params: GetTokenBalanceParams, provider?: Provider): Promise<string> {\n const tokenBalance = await this.getChainTokenService(\n params.token.chainSymbol,\n params.account,\n provider\n ).getTokenBalance(params);\n if (params.token.decimals) {\n return convertIntAmountToFloat(tokenBalance, params.token.decimals).toFixed();\n }\n return tokenBalance;\n }\n\n async getNativeTokenBalance(params: GetNativeTokenBalanceParams, provider?: Provider): Promise<AmountFormatted> {\n const tokenBalance = await this.getChainTokenService(\n params.chainSymbol,\n params.account,\n provider\n ).getNativeTokenBalance(params);\n return {\n [AmountFormat.INT]: tokenBalance,\n [AmountFormat.FLOAT]: convertIntAmountToFloat(\n tokenBalance,\n Chains.getChainDecimalsByType(Chains.getChainProperty(params.chainSymbol).chainType)\n ).toFixed(),\n };\n }\n\n private getChainTokenService(chainSymbol: string, ownerAddress: string, provider?: Provider): ChainTokenService {\n switch (Chains.getChainProperty(chainSymbol).chainType) {\n case ChainType.EVM: {\n if (provider) {\n return new EvmTokenService(provider as EssentialWeb3, this.api);\n } else {\n const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n return new EvmTokenService(new Web3(nodeRpcUrl), this.api);\n }\n }\n case ChainType.TRX: {\n if (provider) {\n return new TronTokenService(provider as TronWeb, this.api);\n } else {\n const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const tronWeb = new TronWeb({ fullHost: nodeRpcUrl });\n tronWeb.setAddress(ownerAddress);\n return new TronTokenService(tronWeb, this.api);\n }\n }\n case ChainType.SOLANA: {\n const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n return new SolanaTokenService(nodeRpcUrl, this.api);\n }\n case ChainType.SRB: {\n return new SrbTokenService(this.nodeRpcUrlsConfig, this.params, this.api);\n }\n case ChainType.SUI: {\n return new SuiTokenService(this.nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol), this.api);\n }\n case ChainType.ALG: {\n if (provider) {\n const algod = provider as Algodv2;\n const algorand = AlgorandClient.fromClients({ algod });\n return new AlgTokenService(algorand, this.api);\n } else {\n const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const algorand = AlgorandClient.fromConfig({\n algodConfig: { server: nodeRpcUrl },\n });\n return new AlgTokenService(algorand, this.api);\n }\n }\n case ChainType.STX: {\n const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n return new StxTokenService(nodeRpcUrl, this.params, this.api);\n }\n }\n }\n\n prepareCheckAllowanceParams(params: CheckAllowanceParams): CheckAllowanceParamsDto {\n return {\n ...params,\n amount: convertFloatAmountToInt(params.amount, params.token.decimals),\n };\n }\n\n private prepareApproveParams(approveData: ApproveParams): ApproveParamsDto {\n return {\n tokenAddress: approveData.token.tokenAddress,\n owner: approveData.owner,\n spender: approveData.spender,\n chainSymbol: approveData.token.chainSymbol,\n amount: approveData.amount == undefined ? undefined : Big(approveData.amount).toFixed(),\n };\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  import { Big } from "big.js";
2
2
  import { FeePaymentMethod } from "../../../models";
3
- import { TokenWithChainDetails } from "../../../tokens-info";
3
+ import { TokenCoreFields } from "../../../tokens-info";
4
4
  export interface ApproveParams {
5
5
  /**
6
6
  * The token info
7
7
  */
8
- token: TokenWithChainDetails;
8
+ token: TokenCoreFields;
9
9
  /**
10
10
  * The address of the token owner who is granting permission to use tokens
11
11
  * to the spender
@@ -27,7 +27,7 @@ export interface GetTokenBalanceParams {
27
27
  * The address for which we will find out the token balance
28
28
  */
29
29
  account: string;
30
- token: TokenWithChainDetails;
30
+ token: TokenCoreFields;
31
31
  }
32
32
  export interface CheckAllowanceParams extends GetAllowanceParams {
33
33
  /**
@@ -36,7 +36,7 @@ export interface CheckAllowanceParams extends GetAllowanceParams {
36
36
  amount: string | number | Big;
37
37
  }
38
38
  export interface GetAllowanceParams {
39
- token: TokenWithChainDetails;
39
+ token: TokenCoreFields;
40
40
  spender: string;
41
41
  owner: string;
42
42
  gasFeePaymentMethod?: FeePaymentMethod;
@@ -1 +1 @@
1
- {"version":3,"file":"token.model.js","sourceRoot":"","sources":["../../../../../src/services/token/models/token.model.ts"],"names":[],"mappings":"","sourcesContent":["import { Big } from \"big.js\";\nimport { FeePaymentMethod } from \"../../../models\";\nimport { TokenWithChainDetails } from \"../../../tokens-info\";\n\nexport interface ApproveParams {\n /**\n * The token info\n */\n token: TokenWithChainDetails;\n\n /**\n * The address of the token owner who is granting permission to use tokens\n * to the spender\n */\n owner: string;\n\n /**\n * The address of the contract that is being granted permission to use tokens\n */\n spender: string;\n\n /**\n * The integer amount of tokens to approve.\n * Optional.\n * The maximum amount by default.\n */\n amount?: string | number | Big;\n}\n\nexport interface GetTokenBalanceParams {\n /**\n * The address for which we will find out the token balance\n */\n account: string;\n token: TokenWithChainDetails;\n}\n\nexport interface CheckAllowanceParams extends GetAllowanceParams {\n /**\n * The float amount of tokens to check the allowance.\n */\n amount: string | number | Big;\n}\n\nexport interface GetAllowanceParams {\n token: TokenWithChainDetails;\n spender: string;\n owner: string;\n gasFeePaymentMethod?: FeePaymentMethod;\n}\n\nexport interface ApproveParamsDto {\n tokenAddress: string;\n chainSymbol: string;\n owner: string;\n spender: string;\n /**\n * Integer amount of tokens to approve.\n */\n amount?: string;\n}\n\nexport type GetAllowanceParamsDto = GetAllowanceParams;\n\n/**\n * @internal\n */\nexport interface CheckAllowanceParamsDto extends GetAllowanceParamsDto {\n /**\n * The integer amount of tokens to check the allowance.\n */\n amount: string | number | Big;\n}\n"]}
1
+ {"version":3,"file":"token.model.js","sourceRoot":"","sources":["../../../../../src/services/token/models/token.model.ts"],"names":[],"mappings":"","sourcesContent":["import { Big } from \"big.js\";\nimport { FeePaymentMethod } from \"../../../models\";\nimport { TokenCoreFields } from \"../../../tokens-info\";\n\nexport interface ApproveParams {\n /**\n * The token info\n */\n token: TokenCoreFields;\n\n /**\n * The address of the token owner who is granting permission to use tokens\n * to the spender\n */\n owner: string;\n\n /**\n * The address of the contract that is being granted permission to use tokens\n */\n spender: string;\n\n /**\n * The integer amount of tokens to approve.\n * Optional.\n * The maximum amount by default.\n */\n amount?: string | number | Big;\n}\n\nexport interface GetTokenBalanceParams {\n /**\n * The address for which we will find out the token balance\n */\n account: string;\n token: TokenCoreFields;\n}\n\nexport interface CheckAllowanceParams extends GetAllowanceParams {\n /**\n * The float amount of tokens to check the allowance.\n */\n amount: string | number | Big;\n}\n\nexport interface GetAllowanceParams {\n token: TokenCoreFields;\n spender: string;\n owner: string;\n gasFeePaymentMethod?: FeePaymentMethod;\n}\n\nexport interface ApproveParamsDto {\n tokenAddress: string;\n chainSymbol: string;\n owner: string;\n spender: string;\n /**\n * Integer amount of tokens to approve.\n */\n amount?: string;\n}\n\nexport type GetAllowanceParamsDto = GetAllowanceParams;\n\n/**\n * @internal\n */\nexport interface CheckAllowanceParamsDto extends GetAllowanceParamsDto {\n /**\n * The integer amount of tokens to check the allowance.\n */\n amount: string | number | Big;\n}\n"]}
@@ -0,0 +1,20 @@
1
+ import { ChainType } from "../../../chains/chain.enums";
2
+ import { AllbridgeCoreClient } from "../../../client/core-api/core-client-base";
3
+ import { AllbridgeCoreSdkOptions } from "../../../index";
4
+ import { GetNativeTokenBalanceParams } from "../../bridge/models";
5
+ import { RawTransaction, TransactionResponse } from "../../models";
6
+ import { ApproveParamsDto, ChainTokenService, CheckAllowanceParamsDto, GetAllowanceParamsDto, GetTokenBalanceParams } from "../models";
7
+ export declare class StxTokenService extends ChainTokenService {
8
+ nodeRpcUrl: string;
9
+ params: AllbridgeCoreSdkOptions;
10
+ api: AllbridgeCoreClient;
11
+ chainType: ChainType.STX;
12
+ private client;
13
+ constructor(nodeRpcUrl: string, params: AllbridgeCoreSdkOptions, api: AllbridgeCoreClient);
14
+ getTokenBalance(params: GetTokenBalanceParams): Promise<string>;
15
+ getNativeTokenBalance(params: GetNativeTokenBalanceParams): Promise<string>;
16
+ getAllowance(_params: GetAllowanceParamsDto): Promise<string>;
17
+ checkAllowance(_params: CheckAllowanceParamsDto): Promise<boolean>;
18
+ approve(_params: ApproveParamsDto): Promise<TransactionResponse>;
19
+ buildRawTransactionApprove(_params: ApproveParamsDto): Promise<RawTransaction>;
20
+ }