@ckb-ccc/core 0.0.5-alpha.1 → 0.0.5-alpha.10

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 (229) hide show
  1. package/dist/address/index.d.ts +1 -1
  2. package/dist/address/index.d.ts.map +1 -1
  3. package/dist/address/index.js +4 -4
  4. package/dist/ckb/transaction.d.ts +2 -2
  5. package/dist/ckb/transaction.d.ts.map +1 -1
  6. package/dist/ckb/transaction.js +2 -3
  7. package/dist/client/client.d.ts +2 -2
  8. package/dist/client/client.d.ts.map +1 -1
  9. package/dist/client/client.js +2 -1
  10. package/dist/client/clientPublicMainnet.d.ts +1 -1
  11. package/dist/client/clientPublicMainnet.d.ts.map +1 -1
  12. package/dist/client/clientPublicMainnet.js +1 -1
  13. package/dist/client/clientPublicTestnet.d.ts +1 -1
  14. package/dist/client/clientPublicTestnet.d.ts.map +1 -1
  15. package/dist/client/clientPublicTestnet.js +1 -1
  16. package/dist/client/jsonRpc/index.d.ts +3 -3
  17. package/dist/client/jsonRpc/index.d.ts.map +1 -1
  18. package/dist/client/jsonRpc/index.js +4 -4
  19. package/dist/signer/btc/index.d.ts +1 -0
  20. package/dist/signer/btc/index.d.ts.map +1 -1
  21. package/dist/signer/btc/index.js +1 -0
  22. package/dist/signer/btc/signerBtc.d.ts +9 -1
  23. package/dist/signer/btc/signerBtc.d.ts.map +1 -1
  24. package/dist/signer/btc/signerBtc.js +19 -3
  25. package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts +0 -6
  26. package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -1
  27. package/dist/signer/btc/signerBtcPublicKeyReadonly.js +0 -8
  28. package/dist/signer/btc/verify.d.ts +3 -0
  29. package/dist/signer/btc/verify.d.ts.map +1 -0
  30. package/dist/signer/btc/verify.js +6 -0
  31. package/dist/signer/ckb/index.d.ts +1 -0
  32. package/dist/signer/ckb/index.d.ts.map +1 -1
  33. package/dist/signer/ckb/index.js +1 -0
  34. package/dist/signer/ckb/signerCkbScriptReadonly.d.ts +3 -7
  35. package/dist/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -1
  36. package/dist/signer/ckb/signerCkbScriptReadonly.js +8 -10
  37. package/dist/signer/ckb/verifyJoyId.d.ts +3 -0
  38. package/dist/signer/ckb/verifyJoyId.d.ts.map +1 -0
  39. package/dist/signer/ckb/verifyJoyId.js +12 -0
  40. package/dist/signer/dummy/alwaysError.d.ts +9 -0
  41. package/dist/signer/dummy/alwaysError.d.ts.map +1 -0
  42. package/dist/signer/dummy/alwaysError.js +10 -0
  43. package/dist/signer/dummy/dummy.d.ts +12 -0
  44. package/dist/signer/dummy/dummy.d.ts.map +1 -0
  45. package/dist/signer/dummy/dummy.js +19 -0
  46. package/dist/signer/dummy/index.d.ts +4 -0
  47. package/dist/signer/dummy/index.d.ts.map +1 -0
  48. package/dist/signer/dummy/index.js +3 -0
  49. package/dist/signer/dummy/openLink.d.ts +9 -0
  50. package/dist/signer/dummy/openLink.d.ts.map +1 -0
  51. package/dist/signer/dummy/openLink.js +10 -0
  52. package/dist/signer/evm/index.d.ts +1 -0
  53. package/dist/signer/evm/index.d.ts.map +1 -1
  54. package/dist/signer/evm/index.js +1 -0
  55. package/dist/signer/evm/signerEvm.d.ts +3 -1
  56. package/dist/signer/evm/signerEvm.d.ts.map +1 -1
  57. package/dist/signer/evm/signerEvm.js +10 -4
  58. package/dist/signer/evm/signerEvmAddressReadonly.d.ts +0 -6
  59. package/dist/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -1
  60. package/dist/signer/evm/signerEvmAddressReadonly.js +0 -8
  61. package/dist/signer/evm/verify.d.ts +3 -0
  62. package/dist/signer/evm/verify.d.ts.map +1 -0
  63. package/dist/signer/evm/verify.js +6 -0
  64. package/dist/signer/index.d.ts +1 -0
  65. package/dist/signer/index.d.ts.map +1 -1
  66. package/dist/signer/index.js +1 -0
  67. package/{dist.commonjs/signer/signer.d.ts → dist/signer/signer/index.d.ts} +69 -25
  68. package/dist/signer/signer/index.d.ts.map +1 -0
  69. package/dist/signer/{signer.js → signer/index.js} +101 -16
  70. package/dist/utils/index.d.ts +60 -0
  71. package/dist/utils/index.d.ts.map +1 -1
  72. package/dist/utils/index.js +20 -0
  73. package/dist.commonjs/address/address.advanced.d.ts +29 -24
  74. package/dist.commonjs/address/address.advanced.js +114 -92
  75. package/dist.commonjs/address/advanced.d.ts +1 -1
  76. package/dist.commonjs/address/advanced.js +30 -14
  77. package/dist.commonjs/address/index.d.ts +51 -44
  78. package/dist.commonjs/address/index.d.ts.map +1 -1
  79. package/dist.commonjs/address/index.js +87 -68
  80. package/dist.commonjs/advanced.d.ts +1 -1
  81. package/dist.commonjs/advanced.js +47 -22
  82. package/dist.commonjs/advancedBarrel.d.ts +1 -1
  83. package/dist.commonjs/advancedBarrel.js +30 -14
  84. package/dist.commonjs/barrel.d.ts +1 -1
  85. package/dist.commonjs/barrel.js +30 -14
  86. package/dist.commonjs/bytes/advanced.d.ts +11 -2
  87. package/dist.commonjs/bytes/index.d.ts +9 -3
  88. package/dist.commonjs/bytes/index.js +28 -26
  89. package/dist.commonjs/ckb/advanced.d.ts +1 -1
  90. package/dist.commonjs/ckb/advanced.js +47 -22
  91. package/dist.commonjs/ckb/index.d.ts +1 -1
  92. package/dist.commonjs/ckb/index.js +30 -14
  93. package/dist.commonjs/ckb/molecule.advanced/generated.d.ts +420 -260
  94. package/dist.commonjs/ckb/molecule.advanced/generated.js +1536 -1332
  95. package/dist.commonjs/ckb/molecule.advanced/index.d.ts +3 -3
  96. package/dist.commonjs/ckb/molecule.advanced/index.js +34 -18
  97. package/dist.commonjs/ckb/script.advanced.d.ts +1 -1
  98. package/dist.commonjs/ckb/script.advanced.js +12 -9
  99. package/dist.commonjs/ckb/script.d.ts +76 -76
  100. package/dist.commonjs/ckb/script.js +166 -126
  101. package/dist.commonjs/ckb/transaction.advanced.d.ts +1 -1
  102. package/dist.commonjs/ckb/transaction.advanced.js +4 -4
  103. package/dist.commonjs/ckb/transaction.d.ts +570 -532
  104. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  105. package/dist.commonjs/ckb/transaction.js +839 -723
  106. package/dist.commonjs/client/advanced.d.ts +1 -1
  107. package/dist.commonjs/client/advanced.js +30 -14
  108. package/dist.commonjs/client/client.d.ts +52 -21
  109. package/dist.commonjs/client/client.d.ts.map +1 -1
  110. package/dist.commonjs/client/client.js +67 -57
  111. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts +5 -2
  112. package/dist.commonjs/client/clientPublicMainnet.advanced.js +30 -24
  113. package/dist.commonjs/client/clientPublicMainnet.d.ts +6 -4
  114. package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
  115. package/dist.commonjs/client/clientPublicMainnet.js +9 -9
  116. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts +5 -2
  117. package/dist.commonjs/client/clientPublicTestnet.advanced.js +30 -24
  118. package/dist.commonjs/client/clientPublicTestnet.d.ts +6 -4
  119. package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -1
  120. package/dist.commonjs/client/clientPublicTestnet.js +9 -9
  121. package/dist.commonjs/client/clientTypes.d.ts +51 -36
  122. package/dist.commonjs/client/clientTypes.js +34 -19
  123. package/dist.commonjs/client/index.d.ts +1 -1
  124. package/dist.commonjs/client/index.js +30 -14
  125. package/dist.commonjs/client/jsonRpc/advanced.d.ts +1 -1
  126. package/dist.commonjs/client/jsonRpc/advanced.js +30 -14
  127. package/dist.commonjs/client/jsonRpc/index.d.ts +92 -75
  128. package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
  129. package/dist.commonjs/client/jsonRpc/index.js +135 -108
  130. package/dist.commonjs/client/jsonRpc/transformers.d.ts +78 -38
  131. package/dist.commonjs/client/jsonRpc/transformers.js +175 -150
  132. package/dist.commonjs/client/jsonRpc/types.d.ts +38 -38
  133. package/dist.commonjs/fixedPoint/index.d.ts +9 -3
  134. package/dist.commonjs/fixedPoint/index.js +26 -20
  135. package/dist.commonjs/fixedPoint/index.test.d.ts +1 -1
  136. package/dist.commonjs/fixedPoint/index.test.js +42 -36
  137. package/dist.commonjs/hasher/advanced.d.ts +1 -1
  138. package/dist.commonjs/hasher/index.d.ts +36 -36
  139. package/dist.commonjs/hasher/index.js +52 -45
  140. package/dist.commonjs/hex/index.d.ts +1 -1
  141. package/dist.commonjs/hex/index.js +1 -1
  142. package/dist.commonjs/index.d.ts +1 -1
  143. package/dist.commonjs/index.js +47 -22
  144. package/dist.commonjs/num/index.d.ts +1 -1
  145. package/dist.commonjs/num/index.js +30 -19
  146. package/dist.commonjs/signer/btc/index.d.ts +2 -1
  147. package/dist.commonjs/signer/btc/index.d.ts.map +1 -1
  148. package/dist.commonjs/signer/btc/index.js +31 -14
  149. package/dist.commonjs/signer/btc/signerBtc.d.ts +48 -40
  150. package/dist.commonjs/signer/btc/signerBtc.d.ts.map +1 -1
  151. package/dist.commonjs/signer/btc/signerBtc.js +85 -49
  152. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts +45 -51
  153. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -1
  154. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.js +52 -60
  155. package/dist.commonjs/signer/btc/verify.d.ts +7 -0
  156. package/dist.commonjs/signer/btc/verify.d.ts.map +1 -0
  157. package/dist.commonjs/signer/btc/verify.js +13 -0
  158. package/dist.commonjs/signer/ckb/index.d.ts +2 -1
  159. package/dist.commonjs/signer/ckb/index.d.ts.map +1 -1
  160. package/dist.commonjs/signer/ckb/index.js +31 -14
  161. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts +46 -50
  162. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -1
  163. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.js +56 -58
  164. package/dist.commonjs/signer/ckb/verifyJoyId.d.ts +7 -0
  165. package/dist.commonjs/signer/ckb/verifyJoyId.d.ts.map +1 -0
  166. package/dist.commonjs/signer/ckb/verifyJoyId.js +19 -0
  167. package/dist.commonjs/signer/dummy/alwaysError.d.ts +9 -0
  168. package/dist.commonjs/signer/dummy/alwaysError.d.ts.map +1 -0
  169. package/dist.commonjs/signer/dummy/alwaysError.js +14 -0
  170. package/dist.commonjs/signer/dummy/dummy.d.ts +12 -0
  171. package/dist.commonjs/signer/dummy/dummy.d.ts.map +1 -0
  172. package/dist.commonjs/signer/dummy/dummy.js +23 -0
  173. package/dist.commonjs/signer/dummy/index.d.ts +4 -0
  174. package/dist.commonjs/signer/dummy/index.d.ts.map +1 -0
  175. package/dist.commonjs/signer/dummy/index.js +35 -0
  176. package/dist.commonjs/signer/dummy/openLink.d.ts +9 -0
  177. package/dist.commonjs/signer/dummy/openLink.d.ts.map +1 -0
  178. package/dist.commonjs/signer/dummy/openLink.js +14 -0
  179. package/dist.commonjs/signer/evm/index.d.ts +2 -1
  180. package/dist.commonjs/signer/evm/index.d.ts.map +1 -1
  181. package/dist.commonjs/signer/evm/index.js +31 -14
  182. package/dist.commonjs/signer/evm/signerEvm.d.ts +43 -37
  183. package/dist.commonjs/signer/evm/signerEvm.d.ts.map +1 -1
  184. package/dist.commonjs/signer/evm/signerEvm.js +101 -63
  185. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts +37 -43
  186. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -1
  187. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.js +42 -50
  188. package/dist.commonjs/signer/evm/verify.d.ts +7 -0
  189. package/dist.commonjs/signer/evm/verify.d.ts.map +1 -0
  190. package/dist.commonjs/signer/evm/verify.js +15 -0
  191. package/dist.commonjs/signer/index.d.ts +2 -1
  192. package/dist.commonjs/signer/index.d.ts.map +1 -1
  193. package/dist.commonjs/signer/index.js +31 -14
  194. package/dist.commonjs/signer/signer/index.d.ts +190 -0
  195. package/dist.commonjs/signer/signer/index.d.ts.map +1 -0
  196. package/dist.commonjs/signer/signer/index.js +234 -0
  197. package/dist.commonjs/utils/index.d.ts +94 -6
  198. package/dist.commonjs/utils/index.d.ts.map +1 -1
  199. package/dist.commonjs/utils/index.js +33 -5
  200. package/package.json +6 -3
  201. package/src/address/index.ts +4 -7
  202. package/src/ckb/transaction.ts +4 -5
  203. package/src/client/client.ts +7 -6
  204. package/src/client/clientPublicMainnet.ts +1 -1
  205. package/src/client/clientPublicTestnet.ts +1 -1
  206. package/src/client/jsonRpc/index.ts +3 -3
  207. package/src/signer/btc/index.ts +1 -0
  208. package/src/signer/btc/signerBtc.ts +22 -7
  209. package/src/signer/btc/signerBtcPublicKeyReadonly.ts +0 -9
  210. package/src/signer/btc/verify.ts +14 -0
  211. package/src/signer/ckb/index.ts +1 -0
  212. package/src/signer/ckb/signerCkbScriptReadonly.ts +10 -11
  213. package/src/signer/ckb/verifyJoyId.ts +20 -0
  214. package/src/signer/dummy/alwaysError.ts +17 -0
  215. package/src/signer/dummy/dummy.ts +28 -0
  216. package/src/signer/dummy/index.ts +3 -0
  217. package/src/signer/dummy/openLink.ts +17 -0
  218. package/src/signer/evm/index.ts +1 -0
  219. package/src/signer/evm/signerEvm.ts +16 -10
  220. package/src/signer/evm/signerEvmAddressReadonly.ts +0 -9
  221. package/src/signer/evm/verify.ts +16 -0
  222. package/src/signer/index.ts +1 -0
  223. package/src/signer/{signer.ts → signer/index.ts} +135 -25
  224. package/src/utils/index.ts +108 -0
  225. package/dist/signer/signer.d.ts +0 -140
  226. package/dist/signer/signer.d.ts.map +0 -1
  227. package/dist.commonjs/signer/signer.d.ts.map +0 -1
  228. package/dist.commonjs/signer/signer.js +0 -125
  229. package/dist.commonjs/tsconfig.commonjs.tsbuildinfo +0 -1
@@ -17,9 +17,9 @@ import { type AddressLike } from "./index";
17
17
  * ```
18
18
  */
19
19
  export declare function addressPayloadFromString(address: string): {
20
- prefix: string;
21
- format: AddressFormat;
22
- payload: number[];
20
+ prefix: string;
21
+ format: AddressFormat;
22
+ payload: number[];
23
23
  };
24
24
  /**
25
25
  * Converts an address payload into an address-like object.
@@ -39,27 +39,32 @@ export declare function addressPayloadFromString(address: string): {
39
39
  * console.log(address.prefix); // Outputs the address prefix
40
40
  * ```
41
41
  */
42
- export declare function addressFromPayload(prefix: string, format: AddressFormat, payload: number[], client: Client): Promise<AddressLike>;
42
+ export declare function addressFromPayload(
43
+ prefix: string,
44
+ format: AddressFormat,
45
+ payload: number[],
46
+ client: Client,
47
+ ): Promise<AddressLike>;
43
48
  export declare enum AddressFormat {
44
- /**
45
- * full version identifies the hashType
46
- */
47
- Full = 0,
48
- /**
49
- * @deprecated
50
- * short version for locks with Known codeHash, deprecated
51
- */
52
- Short = 1,
53
- /**
54
- * @deprecated
55
- * full version with hashType = "Data", deprecated
56
- */
57
- FullData = 2,
58
- /**
59
- * @deprecated
60
- * full version with hashType = "Type", deprecated
61
- */
62
- FullType = 4
49
+ /**
50
+ * full version identifies the hashType
51
+ */
52
+ Full = 0,
53
+ /**
54
+ * @deprecated
55
+ * short version for locks with Known codeHash, deprecated
56
+ */
57
+ Short = 1,
58
+ /**
59
+ * @deprecated
60
+ * full version with hashType = "Data", deprecated
61
+ */
62
+ FullData = 2,
63
+ /**
64
+ * @deprecated
65
+ * full version with hashType = "Type", deprecated
66
+ */
67
+ FullType = 4,
63
68
  }
64
69
  export declare const ADDRESS_BECH32_LIMIT = 1023;
65
- //# sourceMappingURL=address.advanced.d.ts.map
70
+ //# sourceMappingURL=address.advanced.d.ts.map
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ADDRESS_BECH32_LIMIT = exports.AddressFormat = exports.addressFromPayload = exports.addressPayloadFromString = void 0;
3
+ exports.ADDRESS_BECH32_LIMIT =
4
+ exports.AddressFormat =
5
+ exports.addressFromPayload =
6
+ exports.addressPayloadFromString =
7
+ void 0;
4
8
  const bech32_1 = require("bech32");
5
9
  const ckb_1 = require("../ckb");
6
10
  const client_1 = require("../client");
@@ -22,27 +26,35 @@ const hex_1 = require("../hex");
22
26
  * ```
23
27
  */
24
28
  function addressPayloadFromString(address) {
25
- // Try parse full format address
26
- {
27
- const { words, prefix } = bech32_1.bech32m.decode(address, exports.ADDRESS_BECH32_LIMIT);
28
- const [formatType, ...payload] = bech32_1.bech32m.fromWords(words);
29
- if (formatType === AddressFormat.Full) {
30
- return { prefix, format: AddressFormat.Full, payload };
31
- }
29
+ // Try parse full format address
30
+ {
31
+ const { words, prefix } = bech32_1.bech32m.decode(
32
+ address,
33
+ exports.ADDRESS_BECH32_LIMIT,
34
+ );
35
+ const [formatType, ...payload] = bech32_1.bech32m.fromWords(words);
36
+ if (formatType === AddressFormat.Full) {
37
+ return { prefix, format: AddressFormat.Full, payload };
32
38
  }
33
- // Try parse legacy 2019 format address
34
- {
35
- const { prefix, words } = bech32_1.bech32.decode(address, exports.ADDRESS_BECH32_LIMIT);
36
- const [formatType, ...payload] = bech32_1.bech32.fromWords(words);
37
- if ([
38
- AddressFormat.FullData,
39
- AddressFormat.FullType,
40
- AddressFormat.Short,
41
- ].includes(formatType)) {
42
- return { prefix, format: formatType, payload };
43
- }
39
+ }
40
+ // Try parse legacy 2019 format address
41
+ {
42
+ const { prefix, words } = bech32_1.bech32.decode(
43
+ address,
44
+ exports.ADDRESS_BECH32_LIMIT,
45
+ );
46
+ const [formatType, ...payload] = bech32_1.bech32.fromWords(words);
47
+ if (
48
+ [
49
+ AddressFormat.FullData,
50
+ AddressFormat.FullType,
51
+ AddressFormat.Short,
52
+ ].includes(formatType)
53
+ ) {
54
+ return { prefix, format: formatType, payload };
44
55
  }
45
- throw Error(`Unknown address format ${address}`);
56
+ }
57
+ throw Error(`Unknown address format ${address}`);
46
58
  }
47
59
  exports.addressPayloadFromString = addressPayloadFromString;
48
60
  /**
@@ -64,86 +76,96 @@ exports.addressPayloadFromString = addressPayloadFromString;
64
76
  * ```
65
77
  */
66
78
  async function addressFromPayload(prefix, format, payload, client) {
67
- if (format === AddressFormat.Full) {
68
- if (payload.length < 32 + 1) {
69
- throw new Error(`Invalid full address without enough payload ${(0, hex_1.hexFrom)(payload)}`);
70
- }
71
- return {
72
- script: {
73
- codeHash: payload.slice(0, 32),
74
- hashType: (0, ckb_1.hashTypeFromBytes)(payload.slice(32, 33)),
75
- args: payload.slice(33),
76
- },
77
- prefix,
78
- };
79
+ if (format === AddressFormat.Full) {
80
+ if (payload.length < 32 + 1) {
81
+ throw new Error(
82
+ `Invalid full address without enough payload ${(0, hex_1.hexFrom)(payload)}`,
83
+ );
79
84
  }
80
- if (format === AddressFormat.FullData) {
81
- if (payload.length < 32) {
82
- throw new Error(`Invalid full data address without enough payload ${(0, hex_1.hexFrom)(payload)}`);
83
- }
84
- return {
85
- script: {
86
- codeHash: payload.slice(0, 32),
87
- hashType: "data",
88
- args: payload.slice(32),
89
- },
90
- prefix,
91
- };
92
- }
93
- if (format === AddressFormat.FullType) {
94
- if (payload.length < 32) {
95
- throw new Error(`Invalid full type address without enough payload ${(0, hex_1.hexFrom)(payload)}`);
96
- }
97
- return {
98
- script: {
99
- codeHash: payload.slice(0, 32),
100
- hashType: "type",
101
- args: payload.slice(32),
102
- },
103
- prefix,
104
- };
105
- }
106
- // format === AddressFormat.Short
107
- if (payload.length !== 21) {
108
- throw new Error(`Invalid short address without enough payload ${(0, hex_1.hexFrom)(payload)}`);
85
+ return {
86
+ script: {
87
+ codeHash: payload.slice(0, 32),
88
+ hashType: (0, ckb_1.hashTypeFromBytes)(payload.slice(32, 33)),
89
+ args: payload.slice(33),
90
+ },
91
+ prefix,
92
+ };
93
+ }
94
+ if (format === AddressFormat.FullData) {
95
+ if (payload.length < 32) {
96
+ throw new Error(
97
+ `Invalid full data address without enough payload ${(0, hex_1.hexFrom)(payload)}`,
98
+ );
109
99
  }
110
- const script = [
111
- client_1.KnownScript.Secp256k1Blake160,
112
- client_1.KnownScript.Secp256k1Multisig,
113
- client_1.KnownScript.AnyoneCanPay,
114
- ][payload[0]];
115
- if (script === undefined) {
116
- throw new Error(`Invalid short address with unknown script ${(0, hex_1.hexFrom)(payload)}`);
100
+ return {
101
+ script: {
102
+ codeHash: payload.slice(0, 32),
103
+ hashType: "data",
104
+ args: payload.slice(32),
105
+ },
106
+ prefix,
107
+ };
108
+ }
109
+ if (format === AddressFormat.FullType) {
110
+ if (payload.length < 32) {
111
+ throw new Error(
112
+ `Invalid full type address without enough payload ${(0, hex_1.hexFrom)(payload)}`,
113
+ );
117
114
  }
118
115
  return {
119
- script: {
120
- ...(await client.getKnownScript(script)),
121
- args: payload.slice(1),
122
- },
123
- prefix,
116
+ script: {
117
+ codeHash: payload.slice(0, 32),
118
+ hashType: "type",
119
+ args: payload.slice(32),
120
+ },
121
+ prefix,
124
122
  };
123
+ }
124
+ // format === AddressFormat.Short
125
+ if (payload.length !== 21) {
126
+ throw new Error(
127
+ `Invalid short address without enough payload ${(0, hex_1.hexFrom)(payload)}`,
128
+ );
129
+ }
130
+ const script = [
131
+ client_1.KnownScript.Secp256k1Blake160,
132
+ client_1.KnownScript.Secp256k1Multisig,
133
+ client_1.KnownScript.AnyoneCanPay,
134
+ ][payload[0]];
135
+ if (script === undefined) {
136
+ throw new Error(
137
+ `Invalid short address with unknown script ${(0, hex_1.hexFrom)(payload)}`,
138
+ );
139
+ }
140
+ return {
141
+ script: {
142
+ ...(await client.getKnownScript(script)),
143
+ args: payload.slice(1),
144
+ },
145
+ prefix,
146
+ };
125
147
  }
126
148
  exports.addressFromPayload = addressFromPayload;
127
149
  var AddressFormat;
128
150
  (function (AddressFormat) {
129
- /**
130
- * full version identifies the hashType
131
- */
132
- AddressFormat[AddressFormat["Full"] = 0] = "Full";
133
- /**
134
- * @deprecated
135
- * short version for locks with Known codeHash, deprecated
136
- */
137
- AddressFormat[AddressFormat["Short"] = 1] = "Short";
138
- /**
139
- * @deprecated
140
- * full version with hashType = "Data", deprecated
141
- */
142
- AddressFormat[AddressFormat["FullData"] = 2] = "FullData";
143
- /**
144
- * @deprecated
145
- * full version with hashType = "Type", deprecated
146
- */
147
- AddressFormat[AddressFormat["FullType"] = 4] = "FullType";
151
+ /**
152
+ * full version identifies the hashType
153
+ */
154
+ AddressFormat[(AddressFormat["Full"] = 0)] = "Full";
155
+ /**
156
+ * @deprecated
157
+ * short version for locks with Known codeHash, deprecated
158
+ */
159
+ AddressFormat[(AddressFormat["Short"] = 1)] = "Short";
160
+ /**
161
+ * @deprecated
162
+ * full version with hashType = "Data", deprecated
163
+ */
164
+ AddressFormat[(AddressFormat["FullData"] = 2)] = "FullData";
165
+ /**
166
+ * @deprecated
167
+ * full version with hashType = "Type", deprecated
168
+ */
169
+ AddressFormat[(AddressFormat["FullType"] = 4)] = "FullType";
148
170
  })(AddressFormat || (exports.AddressFormat = AddressFormat = {}));
149
171
  exports.ADDRESS_BECH32_LIMIT = 1023;
@@ -1,2 +1,2 @@
1
1
  export * from "./address.advanced";
2
- //# sourceMappingURL=advanced.d.ts.map
2
+ //# sourceMappingURL=advanced.d.ts.map
@@ -1,17 +1,33 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
2
+ var __createBinding =
3
+ (this && this.__createBinding) ||
4
+ (Object.create
5
+ ? function (o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (
9
+ !desc ||
10
+ ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)
11
+ ) {
12
+ desc = {
13
+ enumerable: true,
14
+ get: function () {
15
+ return m[k];
16
+ },
17
+ };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }
21
+ : function (o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ });
25
+ var __exportStar =
26
+ (this && this.__exportStar) ||
27
+ function (m, exports) {
28
+ for (var p in m)
29
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p))
30
+ __createBinding(exports, m, p);
31
+ };
16
32
  Object.defineProperty(exports, "__esModule", { value: true });
17
33
  __exportStar(require("./address.advanced"), exports);
@@ -2,53 +2,60 @@ import { Script, ScriptLike } from "../ckb";
2
2
  import { Client, KnownScript } from "../client";
3
3
  import { HexLike } from "../hex";
4
4
  export type AddressLike = {
5
- script: ScriptLike;
6
- prefix: string;
5
+ script: ScriptLike;
6
+ prefix: string;
7
7
  };
8
8
  /**
9
9
  * Represents a ckb address with associated script and prefix.
10
10
  */
11
11
  export declare class Address {
12
- script: Script;
13
- prefix: string;
14
- /**
15
- * Creates an instance of Address.
16
- *
17
- * @param script - The script associated with the address.
18
- * @param prefix - The address prefix.
19
- */
20
- constructor(script: Script, prefix: string);
21
- /**
22
- * Creates an Address instance from an AddressLike object.
23
- *
24
- * @param address - An AddressLike object or an instance of Address.
25
- * @returns An Address instance.
26
- */
27
- static from(address: AddressLike): Address;
28
- /**
29
- * Creates an Address instance from an address string.
30
- *
31
- * @param address - The address string to parse.
32
- * @param clients - A Client instance or a record of Client instances keyed by prefix.
33
- * @returns A promise that resolves to an Address instance.
34
- *
35
- * @throws Will throw an error if the address prefix is unknown or mismatched.
36
- */
37
- static fromString(address: string, clients: Client | Record<string, Client>): Promise<Address>;
38
- /**
39
- * Creates an Address instance from a script and client.
40
- *
41
- * @param script - The script-like object.
42
- * @param client - The client instance used to fetch the address prefix.
43
- * @returns A promise that resolves to an Address instance.
44
- */
45
- static fromScript(script: ScriptLike, client: Client): Promise<Address>;
46
- static fromKnownScript(script: KnownScript, args: HexLike, client: Client): Promise<Address>;
47
- /**
48
- * Converts the Address instance to a string.
49
- *
50
- * @returns The address as a string.
51
- */
52
- toString(): string;
12
+ script: Script;
13
+ prefix: string;
14
+ /**
15
+ * Creates an instance of Address.
16
+ *
17
+ * @param script - The script associated with the address.
18
+ * @param prefix - The address prefix.
19
+ */
20
+ constructor(script: Script, prefix: string);
21
+ /**
22
+ * Creates an Address instance from an AddressLike object.
23
+ *
24
+ * @param address - An AddressLike object or an instance of Address.
25
+ * @returns An Address instance.
26
+ */
27
+ static from(address: AddressLike): Address;
28
+ /**
29
+ * Creates an Address instance from an address string.
30
+ *
31
+ * @param address - The address string to parse.
32
+ * @param clients - A Client instance or a record of Client instances keyed by prefix.
33
+ * @returns A promise that resolves to an Address instance.
34
+ *
35
+ * @throws Will throw an error if the address prefix is unknown or mismatched.
36
+ */
37
+ static fromString(
38
+ address: string,
39
+ clients: Client | Record<string, Client>,
40
+ ): Promise<Address>;
41
+ /**
42
+ * Creates an Address instance from a script and client.
43
+ *
44
+ * @param script - The script-like object.
45
+ * @param client - The client instance used to fetch the address prefix.
46
+ * @returns A promise that resolves to an Address instance.
47
+ */
48
+ static fromScript(script: ScriptLike, client: Client): Address;
49
+ static fromKnownScript(
50
+ script: KnownScript,
51
+ args: HexLike,
52
+ client: Client,
53
+ ): Promise<Address>;
54
+ /**
55
+ * Converts the Address instance to a string.
56
+ *
57
+ * @returns The address as a string.
58
+ */
59
+ toString(): string;
53
60
  }
54
- //# sourceMappingURL=index.d.ts.map
61
+ //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/address/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAmB,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQjC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AAEH,qBAAa,OAAO;IAQT,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;IARvB;;;;;OAKG;gBAEM,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;IAGvB;;;;;OAKG;IAEH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAQ1C;;;;;;;;OAQG;WAEU,UAAU,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,OAAO,CAAC,OAAO,CAAC;IAmBnB;;;;;;OAMG;WAEU,UAAU,CACrB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC;WAIN,eAAe,CAC1B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM;IAWhB;;;;OAIG;IAEH,QAAQ,IAAI,MAAM;CAcnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/address/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAmB,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQjC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AAEH,qBAAa,OAAO;IAQT,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;IARvB;;;;;OAKG;gBAEM,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;IAGvB;;;;;OAKG;IAEH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAQ1C;;;;;;;;OAQG;WAEU,UAAU,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,OAAO,CAAC,OAAO,CAAC;IAmBnB;;;;;;OAMG;IAEH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;WAIjD,eAAe,CAC1B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM;IAWhB;;;;OAIG;IAEH,QAAQ,IAAI,MAAM;CAcnB"}
@@ -9,76 +9,95 @@ const address_advanced_1 = require("./address.advanced");
9
9
  * Represents a ckb address with associated script and prefix.
10
10
  */
11
11
  class Address {
12
- /**
13
- * Creates an instance of Address.
14
- *
15
- * @param script - The script associated with the address.
16
- * @param prefix - The address prefix.
17
- */
18
- constructor(script, prefix) {
19
- this.script = script;
20
- this.prefix = prefix;
12
+ /**
13
+ * Creates an instance of Address.
14
+ *
15
+ * @param script - The script associated with the address.
16
+ * @param prefix - The address prefix.
17
+ */
18
+ constructor(script, prefix) {
19
+ this.script = script;
20
+ this.prefix = prefix;
21
+ }
22
+ /**
23
+ * Creates an Address instance from an AddressLike object.
24
+ *
25
+ * @param address - An AddressLike object or an instance of Address.
26
+ * @returns An Address instance.
27
+ */
28
+ static from(address) {
29
+ if (address instanceof Address) {
30
+ return address;
21
31
  }
22
- /**
23
- * Creates an Address instance from an AddressLike object.
24
- *
25
- * @param address - An AddressLike object or an instance of Address.
26
- * @returns An Address instance.
27
- */
28
- static from(address) {
29
- if (address instanceof Address) {
30
- return address;
31
- }
32
- return new Address(ckb_1.Script.from(address.script), address.prefix);
32
+ return new Address(ckb_1.Script.from(address.script), address.prefix);
33
+ }
34
+ /**
35
+ * Creates an Address instance from an address string.
36
+ *
37
+ * @param address - The address string to parse.
38
+ * @param clients - A Client instance or a record of Client instances keyed by prefix.
39
+ * @returns A promise that resolves to an Address instance.
40
+ *
41
+ * @throws Will throw an error if the address prefix is unknown or mismatched.
42
+ */
43
+ static async fromString(address, clients) {
44
+ const { prefix, format, payload } = (0,
45
+ address_advanced_1.addressPayloadFromString)(address);
46
+ const client = clients[prefix] ?? clients;
47
+ if (!client) {
48
+ throw new Error(`Unknown address prefix ${prefix}`);
33
49
  }
34
- /**
35
- * Creates an Address instance from an address string.
36
- *
37
- * @param address - The address string to parse.
38
- * @param clients - A Client instance or a record of Client instances keyed by prefix.
39
- * @returns A promise that resolves to an Address instance.
40
- *
41
- * @throws Will throw an error if the address prefix is unknown or mismatched.
42
- */
43
- static async fromString(address, clients) {
44
- const { prefix, format, payload } = (0, address_advanced_1.addressPayloadFromString)(address);
45
- const client = clients[prefix] ?? clients;
46
- if (!client) {
47
- throw new Error(`Unknown address prefix ${prefix}`);
48
- }
49
- const expectedPrefix = await client.getAddressPrefix();
50
- if (expectedPrefix !== prefix) {
51
- throw new Error(`Unknown address prefix ${prefix}, expected ${expectedPrefix}`);
52
- }
53
- return Address.from(await (0, address_advanced_1.addressFromPayload)(prefix, format, payload, client));
54
- }
55
- /**
56
- * Creates an Address instance from a script and client.
57
- *
58
- * @param script - The script-like object.
59
- * @param client - The client instance used to fetch the address prefix.
60
- * @returns A promise that resolves to an Address instance.
61
- */
62
- static async fromScript(script, client) {
63
- return Address.from({ script, prefix: await client.getAddressPrefix() });
64
- }
65
- static async fromKnownScript(script, args, client) {
66
- return Address.from({
67
- script: {
68
- ...(await client.getKnownScript(script)),
69
- args,
70
- },
71
- prefix: await client.getAddressPrefix(),
72
- });
73
- }
74
- /**
75
- * Converts the Address instance to a string.
76
- *
77
- * @returns The address as a string.
78
- */
79
- toString() {
80
- const data = (0, bytes_1.bytesConcat)([address_advanced_1.AddressFormat.Full], (0, bytes_1.bytesFrom)(this.script.codeHash), (0, ckb_1.hashTypeToBytes)(this.script.hashType), (0, bytes_1.bytesFrom)(this.script.args));
81
- return bech32_1.bech32m.encode(this.prefix, bech32_1.bech32m.toWords(data), address_advanced_1.ADDRESS_BECH32_LIMIT);
50
+ const expectedPrefix = client.addressPrefix;
51
+ if (expectedPrefix !== prefix) {
52
+ throw new Error(
53
+ `Unknown address prefix ${prefix}, expected ${expectedPrefix}`,
54
+ );
82
55
  }
56
+ return Address.from(
57
+ await (0, address_advanced_1.addressFromPayload)(
58
+ prefix,
59
+ format,
60
+ payload,
61
+ client,
62
+ ),
63
+ );
64
+ }
65
+ /**
66
+ * Creates an Address instance from a script and client.
67
+ *
68
+ * @param script - The script-like object.
69
+ * @param client - The client instance used to fetch the address prefix.
70
+ * @returns A promise that resolves to an Address instance.
71
+ */
72
+ static fromScript(script, client) {
73
+ return Address.from({ script, prefix: client.addressPrefix });
74
+ }
75
+ static async fromKnownScript(script, args, client) {
76
+ return Address.from({
77
+ script: {
78
+ ...(await client.getKnownScript(script)),
79
+ args,
80
+ },
81
+ prefix: client.addressPrefix,
82
+ });
83
+ }
84
+ /**
85
+ * Converts the Address instance to a string.
86
+ *
87
+ * @returns The address as a string.
88
+ */
89
+ toString() {
90
+ const data = (0, bytes_1.bytesConcat)(
91
+ [address_advanced_1.AddressFormat.Full],
92
+ (0, bytes_1.bytesFrom)(this.script.codeHash),
93
+ (0, ckb_1.hashTypeToBytes)(this.script.hashType),
94
+ (0, bytes_1.bytesFrom)(this.script.args),
95
+ );
96
+ return bech32_1.bech32m.encode(
97
+ this.prefix,
98
+ bech32_1.bech32m.toWords(data),
99
+ address_advanced_1.ADDRESS_BECH32_LIMIT,
100
+ );
101
+ }
83
102
  }
84
103
  exports.Address = Address;
@@ -1,3 +1,3 @@
1
1
  export * from "./advancedBarrel";
2
2
  export * as cccA from "./advancedBarrel";
3
- //# sourceMappingURL=advanced.d.ts.map
3
+ //# sourceMappingURL=advanced.d.ts.map