@btc-vision/transaction 1.8.0-beta.9 → 1.8.0-rc.1

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 (185) hide show
  1. package/browser/abi/ABICoder.d.ts +14 -35
  2. package/browser/abi/ABICoder.d.ts.map +1 -1
  3. package/browser/abi/ABIDataTypes.d.ts +35 -0
  4. package/browser/abi/ABIDataTypes.d.ts.map +1 -0
  5. package/browser/abi/AbiTypes.d.ts +46 -0
  6. package/browser/abi/AbiTypes.d.ts.map +1 -0
  7. package/browser/abi/TupleUtils.d.ts +25 -0
  8. package/browser/abi/TupleUtils.d.ts.map +1 -0
  9. package/browser/btc-vision-bitcoin.js +2570 -2654
  10. package/browser/epoch/validator/EpochValidator.d.ts.map +1 -1
  11. package/browser/generators/builders/CalldataGenerator.d.ts.map +1 -1
  12. package/browser/generators/builders/CustomGenerator.d.ts.map +1 -1
  13. package/browser/generators/builders/DeploymentGenerator.d.ts.map +1 -1
  14. package/browser/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -1
  15. package/browser/generators/builders/MultiSignGenerator.d.ts.map +1 -1
  16. package/browser/index.js +1640 -1507
  17. package/browser/keypair/Address.d.ts +1 -1
  18. package/browser/keypair/Address.d.ts.map +1 -1
  19. package/browser/keypair/Wallet.d.ts.map +1 -1
  20. package/browser/mnemonic/Mnemonic.d.ts +3 -3
  21. package/browser/mnemonic/Mnemonic.d.ts.map +1 -1
  22. package/browser/opnet.d.ts +3 -0
  23. package/browser/opnet.d.ts.map +1 -1
  24. package/browser/signer/TweakedSigner.d.ts.map +1 -1
  25. package/browser/transaction/TransactionFactory.d.ts +3 -3
  26. package/browser/transaction/TransactionFactory.d.ts.map +1 -1
  27. package/browser/transaction/browser/BrowserSignerBase.d.ts.map +1 -1
  28. package/browser/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -1
  29. package/browser/transaction/browser/extensions/XverseSigner.d.ts.map +1 -1
  30. package/browser/transaction/builders/CancelTransaction.d.ts.map +1 -1
  31. package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -1
  32. package/browser/transaction/builders/CustomScriptTransaction.d.ts.map +1 -1
  33. package/browser/transaction/builders/DeploymentTransaction.d.ts.map +1 -1
  34. package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -1
  35. package/browser/transaction/builders/MultiSignTransaction.d.ts.map +1 -1
  36. package/browser/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -1
  37. package/browser/transaction/builders/TransactionBuilder.d.ts +5 -0
  38. package/browser/transaction/builders/TransactionBuilder.d.ts.map +1 -1
  39. package/browser/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -1
  40. package/browser/transaction/offline/OfflineTransactionManager.d.ts.map +1 -1
  41. package/browser/transaction/offline/TransactionReconstructor.d.ts.map +1 -1
  42. package/browser/transaction/offline/TransactionSerializer.d.ts.map +1 -1
  43. package/browser/transaction/offline/TransactionStateCapture.d.ts.map +1 -1
  44. package/browser/transaction/shared/P2TR_MS.d.ts.map +1 -1
  45. package/build/abi/ABICoder.d.ts +14 -35
  46. package/build/abi/ABICoder.d.ts.map +1 -1
  47. package/build/abi/ABICoder.js +119 -141
  48. package/build/abi/ABICoder.js.map +1 -1
  49. package/build/abi/ABIDataTypes.d.ts +35 -0
  50. package/build/abi/ABIDataTypes.d.ts.map +1 -0
  51. package/build/abi/ABIDataTypes.js +42 -0
  52. package/build/abi/ABIDataTypes.js.map +1 -0
  53. package/build/abi/AbiTypes.d.ts +46 -0
  54. package/build/abi/AbiTypes.d.ts.map +1 -0
  55. package/build/abi/AbiTypes.js +78 -0
  56. package/build/abi/AbiTypes.js.map +1 -0
  57. package/build/abi/TupleUtils.d.ts +25 -0
  58. package/build/abi/TupleUtils.d.ts.map +1 -0
  59. package/build/abi/TupleUtils.js +52 -0
  60. package/build/abi/TupleUtils.js.map +1 -0
  61. package/build/epoch/validator/EpochValidator.d.ts.map +1 -1
  62. package/build/epoch/validator/EpochValidator.js +2 -1
  63. package/build/epoch/validator/EpochValidator.js.map +1 -1
  64. package/build/generators/builders/CalldataGenerator.d.ts.map +1 -1
  65. package/build/generators/builders/CalldataGenerator.js +1 -1
  66. package/build/generators/builders/CalldataGenerator.js.map +1 -1
  67. package/build/generators/builders/CustomGenerator.d.ts.map +1 -1
  68. package/build/generators/builders/CustomGenerator.js +1 -1
  69. package/build/generators/builders/CustomGenerator.js.map +1 -1
  70. package/build/generators/builders/DeploymentGenerator.d.ts.map +1 -1
  71. package/build/generators/builders/DeploymentGenerator.js +1 -1
  72. package/build/generators/builders/DeploymentGenerator.js.map +1 -1
  73. package/build/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -1
  74. package/build/generators/builders/LegacyCalldataGenerator.js +1 -1
  75. package/build/generators/builders/LegacyCalldataGenerator.js.map +1 -1
  76. package/build/generators/builders/MultiSignGenerator.d.ts.map +1 -1
  77. package/build/generators/builders/MultiSignGenerator.js.map +1 -1
  78. package/build/keypair/Address.d.ts +1 -1
  79. package/build/keypair/Address.d.ts.map +1 -1
  80. package/build/keypair/Address.js +23 -23
  81. package/build/keypair/Address.js.map +1 -1
  82. package/build/keypair/Wallet.d.ts.map +1 -1
  83. package/build/keypair/Wallet.js.map +1 -1
  84. package/build/mnemonic/Mnemonic.d.ts +3 -3
  85. package/build/mnemonic/Mnemonic.d.ts.map +1 -1
  86. package/build/mnemonic/Mnemonic.js +10 -10
  87. package/build/mnemonic/Mnemonic.js.map +1 -1
  88. package/build/opnet.d.ts +3 -0
  89. package/build/opnet.d.ts.map +1 -1
  90. package/build/opnet.js +3 -0
  91. package/build/opnet.js.map +1 -1
  92. package/build/signer/TweakedSigner.d.ts.map +1 -1
  93. package/build/signer/TweakedSigner.js.map +1 -1
  94. package/build/transaction/TransactionFactory.d.ts +3 -3
  95. package/build/transaction/TransactionFactory.d.ts.map +1 -1
  96. package/build/transaction/TransactionFactory.js +4 -4
  97. package/build/transaction/TransactionFactory.js.map +1 -1
  98. package/build/transaction/browser/BrowserSignerBase.d.ts.map +1 -1
  99. package/build/transaction/browser/BrowserSignerBase.js.map +1 -1
  100. package/build/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -1
  101. package/build/transaction/browser/extensions/UnisatSigner.js.map +1 -1
  102. package/build/transaction/browser/extensions/XverseSigner.d.ts.map +1 -1
  103. package/build/transaction/browser/extensions/XverseSigner.js +2 -1
  104. package/build/transaction/browser/extensions/XverseSigner.js.map +1 -1
  105. package/build/transaction/builders/CancelTransaction.d.ts.map +1 -1
  106. package/build/transaction/builders/CancelTransaction.js.map +1 -1
  107. package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -1
  108. package/build/transaction/builders/ConsolidatedInteractionTransaction.js.map +1 -1
  109. package/build/transaction/builders/CustomScriptTransaction.d.ts.map +1 -1
  110. package/build/transaction/builders/CustomScriptTransaction.js.map +1 -1
  111. package/build/transaction/builders/DeploymentTransaction.d.ts.map +1 -1
  112. package/build/transaction/builders/DeploymentTransaction.js.map +1 -1
  113. package/build/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -1
  114. package/build/transaction/builders/InteractionTransactionP2WDA.js.map +1 -1
  115. package/build/transaction/builders/MultiSignTransaction.d.ts.map +1 -1
  116. package/build/transaction/builders/MultiSignTransaction.js +1 -3
  117. package/build/transaction/builders/MultiSignTransaction.js.map +1 -1
  118. package/build/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -1
  119. package/build/transaction/builders/SharedInteractionTransaction.js.map +1 -1
  120. package/build/transaction/builders/TransactionBuilder.d.ts +5 -0
  121. package/build/transaction/builders/TransactionBuilder.d.ts.map +1 -1
  122. package/build/transaction/builders/TransactionBuilder.js +5 -0
  123. package/build/transaction/builders/TransactionBuilder.js.map +1 -1
  124. package/build/transaction/interfaces/ITweakedTransactionData.d.ts +1 -2
  125. package/build/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -1
  126. package/build/transaction/offline/OfflineTransactionManager.d.ts.map +1 -1
  127. package/build/transaction/offline/OfflineTransactionManager.js +1 -1
  128. package/build/transaction/offline/OfflineTransactionManager.js.map +1 -1
  129. package/build/transaction/offline/TransactionReconstructor.d.ts.map +1 -1
  130. package/build/transaction/offline/TransactionReconstructor.js +54 -18
  131. package/build/transaction/offline/TransactionReconstructor.js.map +1 -1
  132. package/build/transaction/offline/TransactionSerializer.d.ts.map +1 -1
  133. package/build/transaction/offline/TransactionSerializer.js +10 -28
  134. package/build/transaction/offline/TransactionSerializer.js.map +1 -1
  135. package/build/transaction/offline/TransactionStateCapture.d.ts.map +1 -1
  136. package/build/transaction/offline/TransactionStateCapture.js +42 -14
  137. package/build/transaction/offline/TransactionStateCapture.js.map +1 -1
  138. package/build/transaction/shared/P2TR_MS.d.ts.map +1 -1
  139. package/build/transaction/shared/P2TR_MS.js +1 -1
  140. package/build/transaction/shared/P2TR_MS.js.map +1 -1
  141. package/build/tsconfig.build.tsbuildinfo +1 -1
  142. package/package.json +11 -11
  143. package/src/abi/ABICoder.ts +136 -146
  144. package/src/abi/ABIDataTypes.ts +45 -0
  145. package/src/abi/AbiTypes.ts +179 -0
  146. package/src/abi/TupleUtils.ts +59 -0
  147. package/src/epoch/validator/EpochValidator.ts +2 -1
  148. package/src/generators/builders/CalldataGenerator.ts +1 -1
  149. package/src/generators/builders/CustomGenerator.ts +1 -1
  150. package/src/generators/builders/DeploymentGenerator.ts +8 -1
  151. package/src/generators/builders/LegacyCalldataGenerator.ts +1 -1
  152. package/src/generators/builders/MultiSignGenerator.ts +10 -1
  153. package/src/keypair/Address.ts +25 -25
  154. package/src/keypair/Wallet.ts +1 -8
  155. package/src/mnemonic/Mnemonic.ts +16 -16
  156. package/src/opnet.ts +3 -0
  157. package/src/signer/TweakedSigner.ts +1 -8
  158. package/src/transaction/TransactionFactory.ts +11 -4
  159. package/src/transaction/browser/BrowserSignerBase.ts +1 -6
  160. package/src/transaction/browser/extensions/UnisatSigner.ts +4 -1
  161. package/src/transaction/browser/extensions/XverseSigner.ts +3 -1
  162. package/src/transaction/builders/CancelTransaction.ts +7 -5
  163. package/src/transaction/builders/ConsolidatedInteractionTransaction.ts +1 -9
  164. package/src/transaction/builders/CustomScriptTransaction.ts +2 -7
  165. package/src/transaction/builders/DeploymentTransaction.ts +8 -8
  166. package/src/transaction/builders/InteractionTransactionP2WDA.ts +6 -1
  167. package/src/transaction/builders/MultiSignTransaction.ts +1 -3
  168. package/src/transaction/builders/SharedInteractionTransaction.ts +24 -4
  169. package/src/transaction/builders/TransactionBuilder.ts +5 -0
  170. package/src/transaction/interfaces/ITweakedTransactionData.ts +1 -2
  171. package/src/transaction/offline/OfflineTransactionManager.ts +2 -2
  172. package/src/transaction/offline/TransactionReconstructor.ts +56 -19
  173. package/src/transaction/offline/TransactionSerializer.ts +15 -45
  174. package/src/transaction/offline/TransactionStateCapture.ts +42 -14
  175. package/src/transaction/shared/P2TR_MS.ts +4 -1
  176. package/test/address-rotation.test.ts +3 -3
  177. package/test/address.test.ts +3 -1
  178. package/test/addressmap.test.ts +6 -2
  179. package/test/browser/offline-transaction.test.ts +139 -103
  180. package/test/browser/parallel-signing.test.ts +52 -29
  181. package/test/browser/transaction-signing.test.ts +54 -56
  182. package/test/derivePath.test.ts +1 -1
  183. package/test/disposable.test.ts +7 -32
  184. package/vite.config.browser.ts +41 -7
  185. package/vitest.config.browser.ts +31 -4
@@ -1,41 +1,20 @@
1
- export declare enum ABIDataTypes {
2
- UINT8 = "UINT8",
3
- UINT16 = "UINT16",
4
- UINT32 = "UINT32",
5
- UINT64 = "UINT64",
6
- UINT128 = "UINT128",
7
- UINT256 = "UINT256",
8
- INT8 = "INT8",
9
- INT16 = "INT16",
10
- INT32 = "INT32",
11
- INT64 = "INT64",
12
- INT128 = "INT128",
13
- BOOL = "BOOL",
14
- ADDRESS = "ADDRESS",
15
- EXTENDED_ADDRESS = "EXTENDED_ADDRESS",
16
- STRING = "STRING",
17
- BYTES4 = "BYTES4",
18
- BYTES32 = "BYTES32",
19
- BYTES = "BYTES",
20
- ADDRESS_UINT256_TUPLE = "ADDRESS_UINT256_TUPLE",
21
- EXTENDED_ADDRESS_UINT256_TUPLE = "EXTENDED_ADDRESS_UINT256_TUPLE",
22
- SCHNORR_SIGNATURE = "SCHNORR_SIGNATURE",
23
- ARRAY_OF_ADDRESSES = "ARRAY_OF_ADDRESSES",
24
- ARRAY_OF_EXTENDED_ADDRESSES = "ARRAY_OF_EXTENDED_ADDRESSES",
25
- ARRAY_OF_UINT256 = "ARRAY_OF_UINT256",
26
- ARRAY_OF_UINT128 = "ARRAY_OF_UINT128",
27
- ARRAY_OF_UINT64 = "ARRAY_OF_UINT64",
28
- ARRAY_OF_UINT32 = "ARRAY_OF_UINT32",
29
- ARRAY_OF_UINT16 = "ARRAY_OF_UINT16",
30
- ARRAY_OF_UINT8 = "ARRAY_OF_UINT8",
31
- ARRAY_OF_STRING = "ARRAY_OF_STRING",
32
- ARRAY_OF_BYTES = "ARRAY_OF_BYTES",
33
- ARRAY_OF_BUFFERS = "ARRAY_OF_BUFFERS"
34
- }
1
+ import { BinaryReader } from '../buffer/BinaryReader.js';
2
+ import { AbiType } from './AbiTypes.js';
35
3
  export declare class ABICoder {
36
- decodeData(data: Uint8Array, types: ABIDataTypes[]): unknown[];
4
+ decodeData(data: Uint8Array, types: AbiType[]): unknown[];
37
5
  encodeSelector(selectorIdentifier: string): string;
38
6
  numericSelectorToHex(selector: number): string;
7
+ /**
8
+ * Decodes a single value from the reader based on the ABI type.
9
+ * Supports ABIDataTypes enum values, tuple arrays, and struct objects.
10
+ */
11
+ decodeSingleValue(reader: BinaryReader, type: AbiType): unknown;
12
+ /** Decodes a single-element tuple as a flat typed array (u16 count + values). */
13
+ private decodeArray;
14
+ /** Decodes a multi-element tuple as array of tuple entries (u16 count + entries). */
15
+ private decodeTuple;
16
+ /** Decodes a struct as a single object with named fields (inline, no count prefix). */
17
+ private decodeStruct;
39
18
  private sha256;
40
19
  }
41
20
  //# sourceMappingURL=ABICoder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ABICoder.d.ts","sourceRoot":"","sources":["../../src/abi/ABICoder.ts"],"names":[],"mappings":"AAGA,oBAAY,YAAY;IAEpB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IAGnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IAGjB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,gBAAgB,qBAAqB;IACrC,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,KAAK,UAAU;IAGf,qBAAqB,0BAA0B;IAC/C,8BAA8B,mCAAmC;IAGjE,iBAAiB,sBAAsB;IAGvC,kBAAkB,uBAAuB;IACzC,2BAA2B,gCAAgC;IAC3D,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;CACxC;AAED,qBAAa,QAAQ;IACV,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE;IA6G9D,cAAc,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM;IAQlD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIrD,OAAO,CAAC,MAAM;CAGjB"}
1
+ {"version":3,"file":"ABICoder.d.ts","sourceRoot":"","sources":["../../src/abi/ABICoder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,qBAAa,QAAQ;IACV,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAWzD,cAAc,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM;IAQlD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIrD;;;OAGG;IACI,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO;IAoFtE,iFAAiF;IACjF,OAAO,CAAC,WAAW;IAWnB,qFAAqF;IACrF,OAAO,CAAC,WAAW;IAenB,uFAAuF;IACvF,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,MAAM;CAGjB"}
@@ -0,0 +1,35 @@
1
+ export declare enum ABIDataTypes {
2
+ UINT8 = "UINT8",
3
+ UINT16 = "UINT16",
4
+ UINT32 = "UINT32",
5
+ UINT64 = "UINT64",
6
+ UINT128 = "UINT128",
7
+ UINT256 = "UINT256",
8
+ INT8 = "INT8",
9
+ INT16 = "INT16",
10
+ INT32 = "INT32",
11
+ INT64 = "INT64",
12
+ INT128 = "INT128",
13
+ BOOL = "BOOL",
14
+ ADDRESS = "ADDRESS",
15
+ EXTENDED_ADDRESS = "EXTENDED_ADDRESS",
16
+ STRING = "STRING",
17
+ BYTES4 = "BYTES4",
18
+ BYTES32 = "BYTES32",
19
+ BYTES = "BYTES",
20
+ ADDRESS_UINT256_TUPLE = "ADDRESS_UINT256_TUPLE",
21
+ EXTENDED_ADDRESS_UINT256_TUPLE = "EXTENDED_ADDRESS_UINT256_TUPLE",
22
+ SCHNORR_SIGNATURE = "SCHNORR_SIGNATURE",
23
+ ARRAY_OF_ADDRESSES = "ARRAY_OF_ADDRESSES",
24
+ ARRAY_OF_EXTENDED_ADDRESSES = "ARRAY_OF_EXTENDED_ADDRESSES",
25
+ ARRAY_OF_UINT256 = "ARRAY_OF_UINT256",
26
+ ARRAY_OF_UINT128 = "ARRAY_OF_UINT128",
27
+ ARRAY_OF_UINT64 = "ARRAY_OF_UINT64",
28
+ ARRAY_OF_UINT32 = "ARRAY_OF_UINT32",
29
+ ARRAY_OF_UINT16 = "ARRAY_OF_UINT16",
30
+ ARRAY_OF_UINT8 = "ARRAY_OF_UINT8",
31
+ ARRAY_OF_STRING = "ARRAY_OF_STRING",
32
+ ARRAY_OF_BYTES = "ARRAY_OF_BYTES",
33
+ ARRAY_OF_BUFFERS = "ARRAY_OF_BUFFERS"
34
+ }
35
+ //# sourceMappingURL=ABIDataTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ABIDataTypes.d.ts","sourceRoot":"","sources":["../../src/abi/ABIDataTypes.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IAEpB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IAGnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IAGjB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,gBAAgB,qBAAqB;IACrC,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,KAAK,UAAU;IAGf,qBAAqB,0BAA0B;IAC/C,8BAA8B,mCAAmC;IAGjE,iBAAiB,sBAAsB;IAGvC,kBAAkB,uBAAuB;IACzC,2BAA2B,gCAAgC;IAC3D,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;CACxC"}
@@ -0,0 +1,46 @@
1
+ import { Address } from '../keypair/Address.js';
2
+ import { AddressMap } from '../deterministic/AddressMap.js';
3
+ import { ExtendedAddressMap } from '../deterministic/ExtendedAddressMap.js';
4
+ import { SchnorrSignature } from '../buffer/BinaryReader.js';
5
+ import { ABIDataTypes } from './ABIDataTypes.js';
6
+ /**
7
+ * Recursive ABI type definition:
8
+ * - Simple: ABIDataTypes enum value (e.g. ABIDataTypes.ADDRESS)
9
+ * - Tuple: ordered array of AbiType (e.g. [ABIDataTypes.ADDRESS, ABIDataTypes.UINT8])
10
+ * - Struct: named fields mapping to AbiType (e.g. { field1: ABIDataTypes.ADDRESS, field2: ABIDataTypes.UINT256 })
11
+ * - Nested: any combination (e.g. [ABIDataTypes.ADDRESS, { inner: ABIDataTypes.UINT8 }])
12
+ */
13
+ export type AbiType = ABIDataTypes | AbiType[] | {
14
+ [field: string]: AbiType;
15
+ };
16
+ /**
17
+ * Maps an AbiType to its corresponding TypeScript type at the type level.
18
+ *
19
+ * Usage with `as const`:
20
+ * ```ts
21
+ * const abi = { name: 'balance', type: ABIDataTypes.UINT256 } as const;
22
+ * type Result = InferAbiType<typeof abi.type>; // bigint
23
+ *
24
+ * const structAbi = { name: 'status', type: { minted: ABIDataTypes.UINT256, active: ABIDataTypes.BOOL } } as const;
25
+ * type StatusResult = InferAbiType<typeof structAbi.type>; // { minted: bigint; active: boolean }
26
+ * ```
27
+ */
28
+ export type InferAbiType<T extends AbiType> = T extends ABIDataTypes.UINT8 | ABIDataTypes.UINT16 | ABIDataTypes.UINT32 | ABIDataTypes.INT8 | ABIDataTypes.INT16 | ABIDataTypes.INT32 ? number : T extends ABIDataTypes.UINT64 | ABIDataTypes.UINT128 | ABIDataTypes.UINT256 | ABIDataTypes.INT64 | ABIDataTypes.INT128 ? bigint : T extends ABIDataTypes.BOOL ? boolean : T extends ABIDataTypes.STRING ? string : T extends ABIDataTypes.ADDRESS | ABIDataTypes.EXTENDED_ADDRESS ? Address : T extends ABIDataTypes.BYTES | ABIDataTypes.BYTES4 | ABIDataTypes.BYTES32 ? Uint8Array : T extends ABIDataTypes.SCHNORR_SIGNATURE ? SchnorrSignature : T extends ABIDataTypes.ADDRESS_UINT256_TUPLE ? AddressMap<bigint> : T extends ABIDataTypes.EXTENDED_ADDRESS_UINT256_TUPLE ? ExtendedAddressMap<bigint> : T extends ABIDataTypes.ARRAY_OF_ADDRESSES | ABIDataTypes.ARRAY_OF_EXTENDED_ADDRESSES ? Address[] : T extends ABIDataTypes.ARRAY_OF_UINT256 | ABIDataTypes.ARRAY_OF_UINT128 | ABIDataTypes.ARRAY_OF_UINT64 ? bigint[] : T extends ABIDataTypes.ARRAY_OF_UINT32 | ABIDataTypes.ARRAY_OF_UINT16 | ABIDataTypes.ARRAY_OF_UINT8 ? number[] : T extends ABIDataTypes.ARRAY_OF_STRING ? string[] : T extends ABIDataTypes.ARRAY_OF_BYTES | ABIDataTypes.ARRAY_OF_BUFFERS ? Uint8Array[] : T extends Record<string, AbiType> ? {
29
+ [K in keyof T]: T[K] extends AbiType ? InferAbiType<T[K]> : never;
30
+ } : T extends readonly [infer Single extends AbiType] ? InferAbiType<Single>[] : T extends readonly [AbiType, AbiType, ...AbiType[]] ? {
31
+ [K in keyof T]: T[K] extends AbiType ? InferAbiType<T[K]> : T[K];
32
+ }[] : T extends readonly AbiType[] ? unknown[] : never;
33
+ /**
34
+ * Canonical string → ABIDataTypes mapping.
35
+ * Only includes canonical ABI-style names (not AssemblyScript aliases).
36
+ */
37
+ export declare const StrToAbiType: {
38
+ [key: string]: ABIDataTypes;
39
+ };
40
+ /**
41
+ * Canonical reverse mapping: ABIDataTypes → canonical string.
42
+ */
43
+ export declare const AbiTypeToStr: {
44
+ [key in ABIDataTypes]: string;
45
+ };
46
+ //# sourceMappingURL=AbiTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbiTypes.d.ts","sourceRoot":"","sources":["../../src/abi/AbiTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { ABIDataTypes } from './ABIDataTypes.js';
2
+ import { AbiType } from './AbiTypes.js';
3
+ /**
4
+ * Type guard: returns true if the ABI type is a tuple (ordered array of types).
5
+ */
6
+ export declare function isAbiTuple(type: AbiType): type is AbiType[];
7
+ /**
8
+ * Type guard: returns true if the ABI type is a struct (named fields).
9
+ */
10
+ export declare function isAbiStruct(type: AbiType): type is {
11
+ [field: string]: AbiType;
12
+ };
13
+ /**
14
+ * Type guard: returns true if the ABI type is a simple ABIDataTypes enum value.
15
+ */
16
+ export declare function isSimpleAbiType(type: AbiType): type is ABIDataTypes;
17
+ /**
18
+ * Converts a structured AbiType into a canonical selector string.
19
+ * - Simple: ABIDataTypes.ADDRESS → "address"
20
+ * - Struct: { a: ADDRESS, b: UINT256 } → "tuple(address,uint256)" (inline, no [])
21
+ * - Single-element tuple: [UINT256] → "uint256[]"
22
+ * - Multi-element tuple: [ADDRESS, UINT256] → "tuple(address,uint256)[]"
23
+ */
24
+ export declare function abiTypeToSelectorString(type: AbiType): string;
25
+ //# sourceMappingURL=TupleUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TupleUtils.d.ts","sourceRoot":"","sources":["../../src/abi/TupleUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,OAAO,EAAE,CAE3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAE/E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CA0B7D"}