@sodax/types 2.0.0-rc.2 → 2.0.0-rc.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 (208) hide show
  1. package/README.md +4 -2
  2. package/dist/backend/backendApiV1.d.ts +28 -0
  3. package/dist/backend/backendApiV1.js +1 -0
  4. package/dist/backend/backendApiV2.d.ts +678 -0
  5. package/dist/backend/backendApiV2.js +38 -0
  6. package/dist/backend/index.d.ts +2 -2
  7. package/dist/backend/index.js +2 -2
  8. package/dist/bitcoin/bitcoin.d.ts +18 -1
  9. package/dist/bitcoin/bitcoin.js +13 -1
  10. package/dist/bitcoin/index.d.ts +0 -1
  11. package/dist/bitcoin/index.js +0 -1
  12. package/dist/chains/chain-keys.d.ts +3 -3
  13. package/dist/chains/chain-keys.js +1 -1
  14. package/dist/chains/chains.d.ts +390 -13
  15. package/dist/chains/chains.js +76 -5
  16. package/dist/chains/index.d.ts +0 -1
  17. package/dist/chains/index.js +0 -1
  18. package/dist/chains/tokens.d.ts +530 -7
  19. package/dist/chains/tokens.js +241 -3
  20. package/dist/common/common.d.ts +15 -8
  21. package/dist/common/common.js +0 -1
  22. package/dist/common/constants.d.ts +19 -2
  23. package/dist/common/constants.js +0 -1
  24. package/dist/common/index.d.ts +0 -1
  25. package/dist/common/index.js +0 -1
  26. package/dist/dex/dex.d.ts +4 -2
  27. package/dist/dex/dex.js +0 -1
  28. package/dist/dex/index.d.ts +0 -1
  29. package/dist/dex/index.js +0 -1
  30. package/dist/dex/pancakeswap-infinity.d.ts +0 -1
  31. package/dist/dex/pancakeswap-infinity.js +0 -1
  32. package/dist/evm/evm.d.ts +0 -1
  33. package/dist/evm/evm.js +0 -1
  34. package/dist/evm/index.d.ts +0 -1
  35. package/dist/evm/index.js +0 -1
  36. package/dist/hooks/hooks.d.ts +42 -0
  37. package/dist/hooks/hooks.js +44 -0
  38. package/dist/hooks/index.d.ts +1 -0
  39. package/dist/hooks/index.js +1 -0
  40. package/dist/icon/icon.d.ts +0 -1
  41. package/dist/icon/icon.js +0 -1
  42. package/dist/icon/index.d.ts +0 -1
  43. package/dist/icon/index.js +0 -1
  44. package/dist/index.d.ts +3 -2
  45. package/dist/index.js +3 -2
  46. package/dist/injective/index.d.ts +0 -1
  47. package/dist/injective/index.js +0 -1
  48. package/dist/injective/injective.d.ts +4 -1
  49. package/dist/injective/injective.js +0 -1
  50. package/dist/leverageYield/index.d.ts +1 -0
  51. package/dist/leverageYield/index.js +1 -0
  52. package/dist/leverageYield/leverageYield.d.ts +152 -0
  53. package/dist/leverageYield/leverageYield.js +51 -0
  54. package/dist/moneyMarket/index.d.ts +0 -1
  55. package/dist/moneyMarket/index.js +0 -1
  56. package/dist/moneyMarket/moneyMarket.d.ts +270 -5
  57. package/dist/moneyMarket/moneyMarket.js +15 -1
  58. package/dist/near/index.d.ts +0 -1
  59. package/dist/near/index.js +0 -1
  60. package/dist/near/near-api-js.d.ts +0 -1
  61. package/dist/near/near-api-js.js +0 -1
  62. package/dist/near/near.d.ts +5 -2
  63. package/dist/near/near.js +0 -1
  64. package/dist/shared/analytics.d.ts +119 -0
  65. package/dist/shared/analytics.js +1 -0
  66. package/dist/shared/features.d.ts +9 -0
  67. package/dist/shared/features.js +1 -0
  68. package/dist/shared/index.d.ts +3 -1
  69. package/dist/shared/index.js +3 -1
  70. package/dist/shared/logger.d.ts +27 -0
  71. package/dist/shared/logger.js +1 -0
  72. package/dist/shared/shared.d.ts +21 -1
  73. package/dist/shared/shared.js +0 -1
  74. package/dist/sodax-config/index.d.ts +0 -1
  75. package/dist/sodax-config/index.js +0 -1
  76. package/dist/sodax-config/sodax-config.d.ts +729 -77
  77. package/dist/sodax-config/sodax-config.js +3 -5
  78. package/dist/solana/index.d.ts +0 -1
  79. package/dist/solana/index.js +0 -1
  80. package/dist/solana/solana-web3.d.ts +0 -1
  81. package/dist/solana/solana-web3.js +0 -1
  82. package/dist/solana/solana.d.ts +2 -1
  83. package/dist/solana/solana.js +0 -1
  84. package/dist/stacks/index.d.ts +0 -1
  85. package/dist/stacks/index.js +0 -1
  86. package/dist/stacks/stacks.d.ts +2 -1
  87. package/dist/stacks/stacks.js +0 -1
  88. package/dist/stellar/index.d.ts +0 -1
  89. package/dist/stellar/index.js +0 -1
  90. package/dist/stellar/stellar.d.ts +4 -1
  91. package/dist/stellar/stellar.js +0 -1
  92. package/dist/sui/index.d.ts +0 -1
  93. package/dist/sui/index.js +0 -1
  94. package/dist/sui/sui.d.ts +3 -3
  95. package/dist/sui/sui.js +0 -1
  96. package/dist/swap/index.d.ts +0 -1
  97. package/dist/swap/index.js +0 -1
  98. package/dist/swap/swap.d.ts +466 -107
  99. package/dist/swap/swap.js +75 -14
  100. package/dist/utils/deep-partial.d.ts +0 -1
  101. package/dist/utils/deep-partial.js +0 -1
  102. package/dist/utils/index.d.ts +0 -1
  103. package/dist/utils/index.js +0 -1
  104. package/dist/utils/utils.d.ts +0 -1
  105. package/dist/utils/utils.js +0 -1
  106. package/dist/wallet/index.d.ts +0 -1
  107. package/dist/wallet/index.js +0 -1
  108. package/dist/wallet/providers.d.ts +0 -1
  109. package/dist/wallet/providers.js +0 -1
  110. package/dist/wallet/wallet.d.ts +0 -1
  111. package/dist/wallet/wallet.js +0 -1
  112. package/package.json +28 -11
  113. package/dist/backend/backendApi.d.ts +0 -75
  114. package/dist/backend/backendApi.d.ts.map +0 -1
  115. package/dist/backend/backendApi.js +0 -2
  116. package/dist/backend/backendApi.js.map +0 -1
  117. package/dist/backend/index.d.ts.map +0 -1
  118. package/dist/backend/index.js.map +0 -1
  119. package/dist/bitcoin/bitcoin.d.ts.map +0 -1
  120. package/dist/bitcoin/bitcoin.js.map +0 -1
  121. package/dist/bitcoin/index.d.ts.map +0 -1
  122. package/dist/bitcoin/index.js.map +0 -1
  123. package/dist/chains/chain-keys.d.ts.map +0 -1
  124. package/dist/chains/chain-keys.js.map +0 -1
  125. package/dist/chains/chains.d.ts.map +0 -1
  126. package/dist/chains/chains.js.map +0 -1
  127. package/dist/chains/index.d.ts.map +0 -1
  128. package/dist/chains/index.js.map +0 -1
  129. package/dist/chains/tokens.d.ts.map +0 -1
  130. package/dist/chains/tokens.js.map +0 -1
  131. package/dist/common/common.d.ts.map +0 -1
  132. package/dist/common/common.js.map +0 -1
  133. package/dist/common/constants.d.ts.map +0 -1
  134. package/dist/common/constants.js.map +0 -1
  135. package/dist/common/index.d.ts.map +0 -1
  136. package/dist/common/index.js.map +0 -1
  137. package/dist/dex/dex.d.ts.map +0 -1
  138. package/dist/dex/dex.js.map +0 -1
  139. package/dist/dex/index.d.ts.map +0 -1
  140. package/dist/dex/index.js.map +0 -1
  141. package/dist/dex/pancakeswap-infinity.d.ts.map +0 -1
  142. package/dist/dex/pancakeswap-infinity.js.map +0 -1
  143. package/dist/evm/evm.d.ts.map +0 -1
  144. package/dist/evm/evm.js.map +0 -1
  145. package/dist/evm/index.d.ts.map +0 -1
  146. package/dist/evm/index.js.map +0 -1
  147. package/dist/icon/icon.d.ts.map +0 -1
  148. package/dist/icon/icon.js.map +0 -1
  149. package/dist/icon/index.d.ts.map +0 -1
  150. package/dist/icon/index.js.map +0 -1
  151. package/dist/index.d.ts.map +0 -1
  152. package/dist/index.js.map +0 -1
  153. package/dist/injective/index.d.ts.map +0 -1
  154. package/dist/injective/index.js.map +0 -1
  155. package/dist/injective/injective.d.ts.map +0 -1
  156. package/dist/injective/injective.js.map +0 -1
  157. package/dist/moneyMarket/index.d.ts.map +0 -1
  158. package/dist/moneyMarket/index.js.map +0 -1
  159. package/dist/moneyMarket/moneyMarket.d.ts.map +0 -1
  160. package/dist/moneyMarket/moneyMarket.js.map +0 -1
  161. package/dist/near/index.d.ts.map +0 -1
  162. package/dist/near/index.js.map +0 -1
  163. package/dist/near/near-api-js.d.ts.map +0 -1
  164. package/dist/near/near-api-js.js.map +0 -1
  165. package/dist/near/near.d.ts.map +0 -1
  166. package/dist/near/near.js.map +0 -1
  167. package/dist/shared/index.d.ts.map +0 -1
  168. package/dist/shared/index.js.map +0 -1
  169. package/dist/shared/shared.d.ts.map +0 -1
  170. package/dist/shared/shared.js.map +0 -1
  171. package/dist/sodax-config/index.d.ts.map +0 -1
  172. package/dist/sodax-config/index.js.map +0 -1
  173. package/dist/sodax-config/sodax-config.d.ts.map +0 -1
  174. package/dist/sodax-config/sodax-config.js.map +0 -1
  175. package/dist/solana/index.d.ts.map +0 -1
  176. package/dist/solana/index.js.map +0 -1
  177. package/dist/solana/solana-web3.d.ts.map +0 -1
  178. package/dist/solana/solana-web3.js.map +0 -1
  179. package/dist/solana/solana.d.ts.map +0 -1
  180. package/dist/solana/solana.js.map +0 -1
  181. package/dist/stacks/index.d.ts.map +0 -1
  182. package/dist/stacks/index.js.map +0 -1
  183. package/dist/stacks/stacks.d.ts.map +0 -1
  184. package/dist/stacks/stacks.js.map +0 -1
  185. package/dist/stellar/index.d.ts.map +0 -1
  186. package/dist/stellar/index.js.map +0 -1
  187. package/dist/stellar/stellar.d.ts.map +0 -1
  188. package/dist/stellar/stellar.js.map +0 -1
  189. package/dist/sui/index.d.ts.map +0 -1
  190. package/dist/sui/index.js.map +0 -1
  191. package/dist/sui/sui.d.ts.map +0 -1
  192. package/dist/sui/sui.js.map +0 -1
  193. package/dist/swap/index.d.ts.map +0 -1
  194. package/dist/swap/index.js.map +0 -1
  195. package/dist/swap/swap.d.ts.map +0 -1
  196. package/dist/swap/swap.js.map +0 -1
  197. package/dist/utils/deep-partial.d.ts.map +0 -1
  198. package/dist/utils/deep-partial.js.map +0 -1
  199. package/dist/utils/index.d.ts.map +0 -1
  200. package/dist/utils/index.js.map +0 -1
  201. package/dist/utils/utils.d.ts.map +0 -1
  202. package/dist/utils/utils.js.map +0 -1
  203. package/dist/wallet/index.d.ts.map +0 -1
  204. package/dist/wallet/index.js.map +0 -1
  205. package/dist/wallet/providers.d.ts.map +0 -1
  206. package/dist/wallet/providers.js.map +0 -1
  207. package/dist/wallet/wallet.d.ts.map +0 -1
  208. package/dist/wallet/wallet.js.map +0 -1
@@ -0,0 +1,38 @@
1
+ // Backend Swaps API v2 — request/response contract types.
2
+ //
3
+ // One type per request/response of every endpoint in the backend `swaps-api`
4
+ // controller (`apps/swaps-api/src/api/swaps/swaps.controller.ts`). They favor
5
+ // plain primitives (`string`/`number`/`boolean`/`bigint`/plain objects) over SDK
6
+ // branded types.
7
+ //
8
+ // Inbound (request) and outbound (response) shapes are SEPARATE types because the
9
+ // two directions genuinely differ:
10
+ // - Outbound (response) types are pure JSON: every bigint-derived value (intent
11
+ // ids, amounts, deadlines, fees, relay chain ids) is a decimal `string`, and
12
+ // every `Date` is an ISO 8601 `string` (e.g. `abandonedAt`). A response NEVER
13
+ // contains `bigint` on the wire — JSON cannot represent it (the one typed
14
+ // exception is the unsigned `tx`; see below).
15
+ // - Inbound (request) types mirror the server's parsed request DTOs: the Intent
16
+ // struct (`IntentRequestV2`) carries `bigint` for its numeric fields, matching
17
+ // the backend `IntentDto`. Other request fields (amounts/deadlines on
18
+ // `CreateIntentParamsV2`/`QuoteRequestV2`, fees, relay chain ids, etc.) are
19
+ // decimal `string`, matching their `@IsNumberString` DTO fields.
20
+ // - `Hex` / `Address` / `Hash` / `SpokeChainKey` are plain `string` everywhere.
21
+ // - The unsigned `tx` is typed as the SDK domain union `RawTxReturnType`. It
22
+ // travels as pure JSON (bigints stringified; Injective byte arrays as
23
+ // `{ "0": N, … }` index objects), and the SDK client's response schema
24
+ // (`@sodax/sdk` `rawTxSchemas`) rebuilds the domain shape (`bigint`,
25
+ // `Uint8Array`) on parse — the inverse of the backend's `stringifyBigInts`.
26
+ // - The remaining chain-specific opaque payloads (gas estimate, raw relay
27
+ // `result`) stay `unknown` because their shape varies by chain family.
28
+ //
29
+ // Shapes used in both directions are split into a `*RequestV2` (client → server)
30
+ // and a `*ResponseV2` (server → client) interface. `IntentRequestV2` (bigint
31
+ // numerics) and `IntentResponseV2` (all-string) genuinely differ;
32
+ // `RelayExtraDataRequestV2` / `RelayExtraDataResponseV2` are identical (no bigint
33
+ // fields). This mirrors the backend's request/response DTO pairs.
34
+ //
35
+ // The Config API v2 section at the bottom of this file takes a DIFFERENT approach
36
+ // (see its header): it REUSES the canonical `@sodax/types` config types and projects
37
+ // only the few bigint fields to `string`, rather than re-declaring a parallel tree.
38
+ export {};
@@ -1,2 +1,2 @@
1
- export * from './backendApi.js';
2
- //# sourceMappingURL=index.d.ts.map
1
+ export * from './backendApiV1.js';
2
+ export * from './backendApiV2.js';
@@ -1,2 +1,2 @@
1
- export * from './backendApi.js';
2
- //# sourceMappingURL=index.js.map
1
+ export * from './backendApiV1.js';
2
+ export * from './backendApiV2.js';
@@ -6,6 +6,17 @@ export declare function isSupportedBitcoinAddressType(addressType: string): addr
6
6
  * Shared utility — use this instead of duplicating prefix checks.
7
7
  */
8
8
  export declare function detectBitcoinAddressType(address: string): BtcAddressType;
9
+ /**
10
+ * Off-chain message-signing scheme a Bitcoin address type must use: BIP-322 vs ECDSA (BIP-137).
11
+ *
12
+ * - **P2WPKH / P2TR → BIP-322.** Taproot keys are Schnorr/x-only, so ECDSA cannot sign for them
13
+ * (and wallets like Xverse default to Taproot).
14
+ * - **P2SH / P2PKH → ECDSA (BIP-137).** Browser wallets (UniSat/OKX) reject BIP-322 on
15
+ * nested-segwit/legacy addresses — they throw "Not support address type to sign".
16
+ *
17
+ * No single scheme works for every address type, so signers AND verifiers must branch on this.
18
+ */
19
+ export declare function usesBip322MessageSigning(addressType: BtcAddressType): boolean;
9
20
  export declare const BTC_WALLET_ADDRESS_TYPES: readonly ["taproot", "segwit"];
10
21
  /** User-friendly Bitcoin address type for wallet connection. */
11
22
  export type BtcWalletAddressType = (typeof BTC_WALLET_ADDRESS_TYPES)[number];
@@ -86,6 +97,13 @@ export interface IBitcoinWalletProvider extends ICoreWallet {
86
97
  signTransaction(psbt: string, finalize?: boolean): Promise<string>;
87
98
  signEcdsaMessage(message: string): Promise<string>;
88
99
  signBip322Message(message: string): Promise<string>;
100
+ /**
101
+ * Get the signer's public key as a hex string. Optional capability: required only for the
102
+ * money-market on-demand (borrow/withdraw) flow, where the relay needs the key to verify a
103
+ * BIP-322 (Schnorr/Taproot) signature — which is not public-key-recoverable. Wallets that
104
+ * cannot expose it omit this method; callers guard before use.
105
+ */
106
+ getPublicKey?(): Promise<string>;
89
107
  /**
90
108
  * Send Bitcoin to an address
91
109
  * @param toAddress - Destination Bitcoin address
@@ -106,4 +124,3 @@ export interface UTXO {
106
124
  };
107
125
  }
108
126
  export {};
109
- //# sourceMappingURL=bitcoin.d.ts.map
@@ -17,7 +17,19 @@ export function detectBitcoinAddressType(address) {
17
17
  return 'P2PKH';
18
18
  throw new Error(`Unknown Bitcoin address type: ${address}`);
19
19
  }
20
+ /**
21
+ * Off-chain message-signing scheme a Bitcoin address type must use: BIP-322 vs ECDSA (BIP-137).
22
+ *
23
+ * - **P2WPKH / P2TR → BIP-322.** Taproot keys are Schnorr/x-only, so ECDSA cannot sign for them
24
+ * (and wallets like Xverse default to Taproot).
25
+ * - **P2SH / P2PKH → ECDSA (BIP-137).** Browser wallets (UniSat/OKX) reject BIP-322 on
26
+ * nested-segwit/legacy addresses — they throw "Not support address type to sign".
27
+ *
28
+ * No single scheme works for every address type, so signers AND verifiers must branch on this.
29
+ */
30
+ export function usesBip322MessageSigning(addressType) {
31
+ return addressType === 'P2WPKH' || addressType === 'P2TR';
32
+ }
20
33
  export const BTC_WALLET_ADDRESS_TYPES = ['taproot', 'segwit'];
21
34
  /** Address types that Sodax supports for transactions. */
22
35
  const BTC_ADDRESS_TYPES = ['P2PKH', 'P2SH', 'P2WPKH', 'P2TR'];
23
- //# sourceMappingURL=bitcoin.js.map
@@ -1,2 +1 @@
1
1
  export * from './bitcoin.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export * from './bitcoin.js';
2
- //# sourceMappingURL=index.js.map
@@ -23,9 +23,9 @@ export declare const ChainKeys: {
23
23
  readonly REDBELLY_MAINNET: "redbelly";
24
24
  readonly KAIA_MAINNET: "0x2019.kaia";
25
25
  readonly STACKS_MAINNET: "stacks";
26
+ readonly HEDERA_MAINNET: "hedera";
26
27
  };
27
28
  export type ChainKey = (typeof ChainKeys)[keyof typeof ChainKeys];
28
- export declare const CHAIN_KEYS: ("0xa86a.avax" | "0xa4b1.arbitrum" | "0x2105.base" | "0x38.bsc" | "injective-1" | "sonic" | "0x1.icon" | "sui" | "0xa.optimism" | "0x89.polygon" | "solana" | "stellar" | "hyper" | "lightlink" | "near" | "ethereum" | "bitcoin" | "redbelly" | "0x2019.kaia" | "stacks")[];
29
- export declare const spokeChainKeysSet: Set<"0xa86a.avax" | "0xa4b1.arbitrum" | "0x2105.base" | "0x38.bsc" | "injective-1" | "sonic" | "0x1.icon" | "sui" | "0xa.optimism" | "0x89.polygon" | "solana" | "stellar" | "hyper" | "lightlink" | "near" | "ethereum" | "bitcoin" | "redbelly" | "0x2019.kaia" | "stacks">;
29
+ export declare const CHAIN_KEYS: ("0xa86a.avax" | "0xa4b1.arbitrum" | "0x2105.base" | "0x38.bsc" | "injective-1" | "sonic" | "0x1.icon" | "sui" | "0xa.optimism" | "0x89.polygon" | "solana" | "stellar" | "hyper" | "lightlink" | "near" | "ethereum" | "bitcoin" | "redbelly" | "0x2019.kaia" | "stacks" | "hedera")[];
30
+ export declare const spokeChainKeysSet: Set<"0xa86a.avax" | "0xa4b1.arbitrum" | "0x2105.base" | "0x38.bsc" | "injective-1" | "sonic" | "0x1.icon" | "sui" | "0xa.optimism" | "0x89.polygon" | "solana" | "stellar" | "hyper" | "lightlink" | "near" | "ethereum" | "bitcoin" | "redbelly" | "0x2019.kaia" | "stacks" | "hedera">;
30
31
  export type ChainType = (typeof ChainTypeArr)[number];
31
- //# sourceMappingURL=chain-keys.d.ts.map
@@ -33,7 +33,7 @@ export const ChainKeys = {
33
33
  REDBELLY_MAINNET: 'redbelly',
34
34
  KAIA_MAINNET: '0x2019.kaia',
35
35
  STACKS_MAINNET: 'stacks',
36
+ HEDERA_MAINNET: 'hedera',
36
37
  };
37
38
  export const CHAIN_KEYS = Object.values(ChainKeys);
38
39
  export const spokeChainKeysSet = new Set(CHAIN_KEYS);
39
- //# sourceMappingURL=chain-keys.js.map