@ckb-ccc/core 0.0.2-alpha.2 → 0.0.2-alpha.3

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 (168) hide show
  1. package/.prettierignore +12 -0
  2. package/dist/address/address.advanced.d.ts +29 -3
  3. package/dist/address/address.advanced.d.ts.map +1 -1
  4. package/dist/address/address.advanced.js +69 -22
  5. package/dist/address/advanced.d.ts +1 -28
  6. package/dist/address/advanced.d.ts.map +1 -1
  7. package/dist/address/advanced.js +3 -61
  8. package/dist/address/index.d.ts +10 -13
  9. package/dist/address/index.d.ts.map +1 -1
  10. package/dist/address/index.js +18 -18
  11. package/dist/advancedBarrel.d.ts +1 -0
  12. package/dist/advancedBarrel.d.ts.map +1 -1
  13. package/dist/advancedBarrel.js +1 -0
  14. package/dist/barrel.d.ts +4 -2
  15. package/dist/barrel.d.ts.map +1 -1
  16. package/dist/barrel.js +4 -2
  17. package/dist/bytes/index.d.ts +7 -0
  18. package/dist/bytes/index.d.ts.map +1 -0
  19. package/dist/bytes/index.js +41 -0
  20. package/dist/ckb/advanced.d.ts +3 -2
  21. package/dist/ckb/advanced.d.ts.map +1 -1
  22. package/dist/ckb/advanced.js +16 -2
  23. package/dist/ckb/index.d.ts +2 -3
  24. package/dist/ckb/index.d.ts.map +1 -1
  25. package/dist/ckb/index.js +2 -3
  26. package/dist/ckb/molecule.advanced/generated.d.ts.map +1 -0
  27. package/dist/ckb/{types/molecule.advanced → molecule.advanced}/generated.js +378 -97
  28. package/dist/ckb/molecule.advanced/index.d.ts +6 -0
  29. package/dist/ckb/molecule.advanced/index.d.ts.map +1 -0
  30. package/dist/ckb/{types/molecule.advanced → molecule.advanced}/index.js +8 -0
  31. package/dist/ckb/{types/script.advanced.d.ts → script.advanced.d.ts} +1 -0
  32. package/dist/ckb/script.advanced.d.ts.map +1 -0
  33. package/dist/ckb/{types/script.advanced.js → script.advanced.js} +2 -1
  34. package/dist/ckb/script.d.ts +29 -0
  35. package/dist/ckb/script.d.ts.map +1 -0
  36. package/dist/ckb/script.js +91 -0
  37. package/dist/ckb/{types/transaction.advanced.d.ts → transaction.advanced.d.ts} +1 -0
  38. package/dist/ckb/transaction.advanced.d.ts.map +1 -0
  39. package/dist/ckb/{types/transaction.advanced.js → transaction.advanced.js} +2 -1
  40. package/dist/ckb/transaction.d.ts +142 -0
  41. package/dist/ckb/transaction.d.ts.map +1 -0
  42. package/dist/ckb/transaction.js +262 -0
  43. package/dist/client/client.d.ts +4 -4
  44. package/dist/client/client.d.ts.map +1 -1
  45. package/dist/client/clientPublicMainnet.advanced.d.ts +2 -2
  46. package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  47. package/dist/client/clientPublicMainnet.d.ts +2 -2
  48. package/dist/client/clientPublicMainnet.d.ts.map +1 -1
  49. package/dist/client/clientPublicTestnet.advanced.d.ts +2 -2
  50. package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  51. package/dist/client/clientPublicTestnet.d.ts +2 -2
  52. package/dist/client/clientPublicTestnet.d.ts.map +1 -1
  53. package/dist/client/jsonRpc/advanced.d.ts +36 -36
  54. package/dist/client/jsonRpc/advanced.d.ts.map +1 -1
  55. package/dist/client/jsonRpc/advanced.js +11 -11
  56. package/dist/client/jsonRpc/index.d.ts.map +1 -1
  57. package/dist/client/jsonRpc/index.js +0 -1
  58. package/dist/fixedPoint/index.d.ts +7 -0
  59. package/dist/fixedPoint/index.d.ts.map +1 -0
  60. package/dist/{fixedPoint.js → fixedPoint/index.js} +9 -12
  61. package/dist/{ckb/hasher.advanced.d.ts → hasher/advanced.d.ts} +1 -1
  62. package/dist/hasher/advanced.d.ts.map +1 -0
  63. package/dist/{ckb/hasher.d.ts → hasher/index.d.ts} +3 -2
  64. package/dist/hasher/index.d.ts.map +1 -0
  65. package/dist/{ckb/hasher.js → hasher/index.js} +4 -4
  66. package/dist/hex/index.d.ts +5 -0
  67. package/dist/hex/index.d.ts.map +1 -0
  68. package/dist/hex/index.js +9 -0
  69. package/dist/num/index.d.ts +13 -0
  70. package/dist/num/index.d.ts.map +1 -0
  71. package/dist/num/index.js +47 -0
  72. package/dist/signer/helpers.d.ts +3 -3
  73. package/dist/signer/helpers.d.ts.map +1 -1
  74. package/dist/signer/helpers.js +7 -4
  75. package/dist/signer/index.d.ts +2 -0
  76. package/dist/signer/index.d.ts.map +1 -1
  77. package/dist/signer/index.js +2 -0
  78. package/dist/signer/signer.d.ts +12 -3
  79. package/dist/signer/signer.d.ts.map +1 -1
  80. package/dist/signer/signer.js +13 -2
  81. package/dist/signer/signerReadonly.d.ts +8 -0
  82. package/dist/signer/signerReadonly.d.ts.map +1 -0
  83. package/dist/signer/signerReadonly.js +13 -0
  84. package/dist/{ckb/viewerCkbScript.d.ts → signer/signerReadonlyCkbScript.d.ts} +6 -5
  85. package/dist/signer/signerReadonlyCkbScript.d.ts.map +1 -0
  86. package/dist/{ckb/viewerCkbScript.js → signer/signerReadonlyCkbScript.js} +7 -4
  87. package/dist/utils/index.d.ts +7 -0
  88. package/dist/utils/index.d.ts.map +1 -0
  89. package/dist/utils/index.js +10 -0
  90. package/package.json +5 -3
  91. package/src/address/address.advanced.ts +76 -19
  92. package/src/address/advanced.ts +1 -59
  93. package/src/address/index.ts +46 -28
  94. package/src/advancedBarrel.ts +1 -0
  95. package/src/barrel.ts +4 -2
  96. package/src/bytes/index.ts +46 -0
  97. package/src/ckb/advanced.ts +3 -2
  98. package/src/ckb/index.ts +2 -3
  99. package/src/ckb/{types/molecule.advanced → molecule.advanced}/generated.d.ts +18 -7
  100. package/src/ckb/{types/molecule.advanced → molecule.advanced}/generated.js +551 -123
  101. package/src/ckb/molecule.advanced/index.ts +11 -0
  102. package/src/ckb/{types/script.advanced.ts → script.advanced.ts} +1 -0
  103. package/src/ckb/script.ts +94 -0
  104. package/src/ckb/{types/transaction.advanced.ts → transaction.advanced.ts} +1 -0
  105. package/src/ckb/transaction.ts +357 -0
  106. package/src/client/client.ts +4 -4
  107. package/src/client/clientPublicMainnet.advanced.ts +2 -2
  108. package/src/client/clientPublicMainnet.ts +2 -2
  109. package/src/client/clientPublicTestnet.advanced.ts +2 -2
  110. package/src/client/clientPublicTestnet.ts +2 -2
  111. package/src/client/clientTypes.ts +1 -1
  112. package/src/client/jsonRpc/advanced.ts +25 -25
  113. package/src/client/jsonRpc/index.ts +1 -3
  114. package/src/fixedPoint/index.ts +30 -0
  115. package/src/{ckb/hasher.ts → hasher/index.ts} +5 -5
  116. package/src/hex/index.ts +9 -0
  117. package/src/index.ts +1 -1
  118. package/src/num/index.ts +53 -0
  119. package/src/signer/helpers.ts +9 -6
  120. package/src/signer/index.ts +3 -1
  121. package/src/signer/signer.ts +23 -3
  122. package/src/signer/signerReadonly.ts +13 -0
  123. package/src/{ckb/viewerCkbScript.ts → signer/signerReadonlyCkbScript.ts} +8 -4
  124. package/src/utils/index.ts +28 -0
  125. package/dist/bytes.d.ts +0 -15
  126. package/dist/bytes.d.ts.map +0 -1
  127. package/dist/bytes.js +0 -114
  128. package/dist/ckb/hasher.advanced.d.ts.map +0 -1
  129. package/dist/ckb/hasher.d.ts.map +0 -1
  130. package/dist/ckb/types/advanced.d.ts +0 -4
  131. package/dist/ckb/types/advanced.d.ts.map +0 -1
  132. package/dist/ckb/types/advanced.js +0 -32
  133. package/dist/ckb/types/index.d.ts +0 -3
  134. package/dist/ckb/types/index.d.ts.map +0 -1
  135. package/dist/ckb/types/index.js +0 -18
  136. package/dist/ckb/types/molecule.advanced/generated.d.ts.map +0 -1
  137. package/dist/ckb/types/molecule.advanced/index.d.ts +0 -2
  138. package/dist/ckb/types/molecule.advanced/index.d.ts.map +0 -1
  139. package/dist/ckb/types/script.advanced.d.ts.map +0 -1
  140. package/dist/ckb/types/script.d.ts +0 -26
  141. package/dist/ckb/types/script.d.ts.map +0 -1
  142. package/dist/ckb/types/script.js +0 -75
  143. package/dist/ckb/types/transaction.advanced.d.ts.map +0 -1
  144. package/dist/ckb/types/transaction.d.ts +0 -127
  145. package/dist/ckb/types/transaction.d.ts.map +0 -1
  146. package/dist/ckb/types/transaction.js +0 -266
  147. package/dist/ckb/viewerCkbScript.d.ts.map +0 -1
  148. package/dist/fixedPoint.d.ts +0 -9
  149. package/dist/fixedPoint.d.ts.map +0 -1
  150. package/dist/primitive.d.ts +0 -5
  151. package/dist/primitive.d.ts.map +0 -1
  152. package/dist/primitive.js +0 -2
  153. package/dist/viewer.d.ts +0 -12
  154. package/dist/viewer.d.ts.map +0 -1
  155. package/dist/viewer.js +0 -19
  156. package/src/bytes.ts +0 -127
  157. package/src/ckb/types/advanced.ts +0 -3
  158. package/src/ckb/types/index.ts +0 -2
  159. package/src/ckb/types/molecule.advanced/index.ts +0 -1
  160. package/src/ckb/types/script.ts +0 -70
  161. package/src/ckb/types/transaction.ts +0 -366
  162. package/src/fixedPoint.ts +0 -53
  163. package/src/primitive.ts +0 -8
  164. package/src/viewer.ts +0 -22
  165. /package/dist/ckb/{types/molecule.advanced → molecule.advanced}/generated.d.ts +0 -0
  166. /package/dist/{ckb/hasher.advanced.js → hasher/advanced.js} +0 -0
  167. /package/src/ckb/{types/molecule.advanced → molecule.advanced}/blockchain.mol +0 -0
  168. /package/src/{ckb/hasher.advanced.ts → hasher/advanced.ts} +0 -0
@@ -0,0 +1,12 @@
1
+ node_modules/
2
+
3
+ dist/
4
+
5
+ .npmignore
6
+ .prettierrc
7
+ tsconfig.json
8
+ eslint.config.mjs
9
+ .prettierrc
10
+
11
+ tsconfig.tsbuildinfo
12
+ .github/
@@ -1,5 +1,31 @@
1
1
  import { Client } from "../client";
2
- import { AddressFormat } from "./advanced";
3
- import { type Address as AddressType } from "./index";
4
- export declare function fromAddressPayload(prefix: string, format: AddressFormat, payload: number[], client: Client): Promise<AddressType>;
2
+ import { type AddressLike } from "./index";
3
+ export declare function addressPayloadFromString(address: string): {
4
+ prefix: string;
5
+ format: AddressFormat;
6
+ payload: number[];
7
+ };
8
+ export declare function addressFromPayload(prefix: string, format: AddressFormat, payload: number[], client: Client): Promise<AddressLike>;
9
+ export declare enum AddressFormat {
10
+ /**
11
+ * full version identifies the hashType
12
+ */
13
+ Full = 0,
14
+ /**
15
+ * @deprecated
16
+ * short version for locks with Known codeHash, deprecated
17
+ */
18
+ Short = 1,
19
+ /**
20
+ * @deprecated
21
+ * full version with hashType = "Data", deprecated
22
+ */
23
+ FullData = 2,
24
+ /**
25
+ * @deprecated
26
+ * full version with hashType = "Type", deprecated
27
+ */
28
+ FullType = 4
29
+ }
30
+ export declare const ADDRESS_BECH32_LIMIT = 1023;
5
31
  //# sourceMappingURL=address.advanced.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"address.advanced.d.ts","sourceRoot":"","sources":["../../src/address/address.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAe,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,OAAO,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CA4EtB"}
1
+ {"version":3,"file":"address.advanced.d.ts","sourceRoot":"","sources":["../../src/address/address.advanced.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAe,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CA2BA;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CA4EtB;AAED,oBAAY,aAAa;IACvB;;OAEG;IACH,IAAI,IAAO;IACX;;;OAGG;IACH,KAAK,IAAO;IACZ;;;OAGG;IACH,QAAQ,IAAO;IACf;;;OAGG;IACH,QAAQ,IAAO;CAChB;AAED,eAAO,MAAM,oBAAoB,OAAO,CAAC"}
@@ -1,53 +1,77 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fromAddressPayload = void 0;
4
- const client_1 = require("../client");
5
- const bytes_1 = require("../bytes");
6
- const advanced_1 = require("./advanced");
3
+ exports.ADDRESS_BECH32_LIMIT = exports.AddressFormat = exports.addressFromPayload = exports.addressPayloadFromString = void 0;
4
+ const bech32_1 = require("bech32");
7
5
  const ckb_1 = require("../ckb");
8
- async function fromAddressPayload(prefix, format, payload, client) {
9
- if (format === advanced_1.AddressFormat.Full) {
6
+ const client_1 = require("../client");
7
+ const hex_1 = require("../hex");
8
+ function addressPayloadFromString(address) {
9
+ // Try parse full format address
10
+ {
11
+ const { words, prefix } = bech32_1.bech32m.decode(address, exports.ADDRESS_BECH32_LIMIT);
12
+ const [formatType, ...payload] = bech32_1.bech32m.fromWords(words);
13
+ if (formatType === AddressFormat.Full) {
14
+ return { prefix, format: AddressFormat.Full, payload };
15
+ }
16
+ }
17
+ // Try parse legacy 2019 format address
18
+ {
19
+ const { prefix, words } = bech32_1.bech32.decode(address, exports.ADDRESS_BECH32_LIMIT);
20
+ const [formatType, ...payload] = bech32_1.bech32.fromWords(words);
21
+ if ([
22
+ AddressFormat.FullData,
23
+ AddressFormat.FullType,
24
+ AddressFormat.Short,
25
+ ].includes(formatType)) {
26
+ return { prefix, format: formatType, payload };
27
+ }
28
+ }
29
+ throw Error(`Unknown address format ${address}`);
30
+ }
31
+ exports.addressPayloadFromString = addressPayloadFromString;
32
+ async function addressFromPayload(prefix, format, payload, client) {
33
+ if (format === AddressFormat.Full) {
10
34
  if (payload.length < 32 + 1) {
11
- throw new Error(`Invalid full address without enough payload ${(0, bytes_1.toHex)(payload)}`);
35
+ throw new Error(`Invalid full address without enough payload ${(0, hex_1.hexFrom)(payload)}`);
12
36
  }
13
37
  return {
14
38
  script: {
15
- codeHash: (0, bytes_1.toHex)(payload.slice(0, 32)),
16
- hashType: (0, ckb_1.decodeHashType)(payload.slice(32, 33)),
17
- args: (0, bytes_1.toHex)(payload.slice(33)),
39
+ codeHash: (0, hex_1.hexFrom)(payload.slice(0, 32)),
40
+ hashType: (0, ckb_1.hashTypeFromBytes)(payload.slice(32, 33)),
41
+ args: (0, hex_1.hexFrom)(payload.slice(33)),
18
42
  },
19
43
  prefix,
20
44
  };
21
45
  }
22
- if (format === advanced_1.AddressFormat.FullData) {
46
+ if (format === AddressFormat.FullData) {
23
47
  if (payload.length < 32) {
24
- throw new Error(`Invalid full data address without enough payload ${(0, bytes_1.toHex)(payload)}`);
48
+ throw new Error(`Invalid full data address without enough payload ${(0, hex_1.hexFrom)(payload)}`);
25
49
  }
26
50
  return {
27
51
  script: {
28
- codeHash: (0, bytes_1.toHex)(payload.slice(0, 32)),
52
+ codeHash: (0, hex_1.hexFrom)(payload.slice(0, 32)),
29
53
  hashType: "data",
30
- args: (0, bytes_1.toHex)(payload.slice(32)),
54
+ args: (0, hex_1.hexFrom)(payload.slice(32)),
31
55
  },
32
56
  prefix,
33
57
  };
34
58
  }
35
- if (format === advanced_1.AddressFormat.FullType) {
59
+ if (format === AddressFormat.FullType) {
36
60
  if (payload.length < 32) {
37
- throw new Error(`Invalid full type address without enough payload ${(0, bytes_1.toHex)(payload)}`);
61
+ throw new Error(`Invalid full type address without enough payload ${(0, hex_1.hexFrom)(payload)}`);
38
62
  }
39
63
  return {
40
64
  script: {
41
- codeHash: (0, bytes_1.toHex)(payload.slice(0, 32)),
65
+ codeHash: (0, hex_1.hexFrom)(payload.slice(0, 32)),
42
66
  hashType: "type",
43
- args: (0, bytes_1.toHex)(payload.slice(32)),
67
+ args: (0, hex_1.hexFrom)(payload.slice(32)),
44
68
  },
45
69
  prefix,
46
70
  };
47
71
  }
48
72
  // format === AddressFormat.Short
49
73
  if (payload.length !== 21) {
50
- throw new Error(`Invalid short address without enough payload ${(0, bytes_1.toHex)(payload)}`);
74
+ throw new Error(`Invalid short address without enough payload ${(0, hex_1.hexFrom)(payload)}`);
51
75
  }
52
76
  const script = [
53
77
  client_1.KnownScript.Secp256k1Blake160,
@@ -55,14 +79,37 @@ async function fromAddressPayload(prefix, format, payload, client) {
55
79
  client_1.KnownScript.AnyoneCanPay,
56
80
  ][payload[0]];
57
81
  if (script === undefined) {
58
- throw new Error(`Invalid short address with unknown script ${(0, bytes_1.toHex)(payload)}`);
82
+ throw new Error(`Invalid short address with unknown script ${(0, hex_1.hexFrom)(payload)}`);
59
83
  }
60
84
  return {
61
85
  script: {
62
86
  ...(await client.getKnownScript(script)),
63
- args: (0, bytes_1.toHex)(payload.slice(1)),
87
+ args: (0, hex_1.hexFrom)(payload.slice(1)),
64
88
  },
65
89
  prefix,
66
90
  };
67
91
  }
68
- exports.fromAddressPayload = fromAddressPayload;
92
+ exports.addressFromPayload = addressFromPayload;
93
+ var AddressFormat;
94
+ (function (AddressFormat) {
95
+ /**
96
+ * full version identifies the hashType
97
+ */
98
+ AddressFormat[AddressFormat["Full"] = 0] = "Full";
99
+ /**
100
+ * @deprecated
101
+ * short version for locks with Known codeHash, deprecated
102
+ */
103
+ AddressFormat[AddressFormat["Short"] = 1] = "Short";
104
+ /**
105
+ * @deprecated
106
+ * full version with hashType = "Data", deprecated
107
+ */
108
+ AddressFormat[AddressFormat["FullData"] = 2] = "FullData";
109
+ /**
110
+ * @deprecated
111
+ * full version with hashType = "Type", deprecated
112
+ */
113
+ AddressFormat[AddressFormat["FullType"] = 4] = "FullType";
114
+ })(AddressFormat || (exports.AddressFormat = AddressFormat = {}));
115
+ exports.ADDRESS_BECH32_LIMIT = 1023;
@@ -1,29 +1,2 @@
1
- export * as Address from "./address.advanced";
2
- export declare function parseAddressToPayload(address: string): {
3
- prefix: string;
4
- format: AddressFormat;
5
- payload: number[];
6
- };
7
- export declare enum AddressFormat {
8
- /**
9
- * full version identifies the hashType
10
- */
11
- Full = 0,
12
- /**
13
- * @deprecated
14
- * short version for locks with Known codeHash, deprecated
15
- */
16
- Short = 1,
17
- /**
18
- * @deprecated
19
- * full version with hashType = "Data", deprecated
20
- */
21
- FullData = 2,
22
- /**
23
- * @deprecated
24
- * full version with hashType = "Type", deprecated
25
- */
26
- FullType = 4
27
- }
28
- export declare const BECH32_LIMIT = 1023;
1
+ export * from "./address.advanced";
29
2
  //# sourceMappingURL=advanced.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../src/address/advanced.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CA2BA;AAED,oBAAY,aAAa;IACvB;;OAEG;IACH,IAAI,IAAO;IACX;;;OAGG;IACH,KAAK,IAAO;IACZ;;;OAGG;IACH,QAAQ,IAAO;IACf;;;OAGG;IACH,QAAQ,IAAO;CAChB;AAED,eAAO,MAAM,YAAY,OAAO,CAAC"}
1
+ {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../src/address/advanced.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -10,66 +10,8 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
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);
24
15
  };
25
16
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.BECH32_LIMIT = exports.AddressFormat = exports.parseAddressToPayload = exports.Address = void 0;
27
- const bech32_1 = require("bech32");
28
- exports.Address = __importStar(require("./address.advanced"));
29
- function parseAddressToPayload(address) {
30
- // Try parse full format address
31
- {
32
- const { words, prefix } = bech32_1.bech32m.decode(address, exports.BECH32_LIMIT);
33
- const [formatType, ...payload] = bech32_1.bech32m.fromWords(words);
34
- if (formatType === AddressFormat.Full) {
35
- return { prefix, format: AddressFormat.Full, payload };
36
- }
37
- }
38
- // Try parse legacy 2019 format address
39
- {
40
- const { prefix, words } = bech32_1.bech32.decode(address, exports.BECH32_LIMIT);
41
- const [formatType, ...payload] = bech32_1.bech32.fromWords(words);
42
- if ([
43
- AddressFormat.FullData,
44
- AddressFormat.FullType,
45
- AddressFormat.Short,
46
- ].includes(formatType)) {
47
- return { prefix, format: formatType, payload };
48
- }
49
- }
50
- throw Error(`Unknown address format ${address}`);
51
- }
52
- exports.parseAddressToPayload = parseAddressToPayload;
53
- var AddressFormat;
54
- (function (AddressFormat) {
55
- /**
56
- * full version identifies the hashType
57
- */
58
- AddressFormat[AddressFormat["Full"] = 0] = "Full";
59
- /**
60
- * @deprecated
61
- * short version for locks with Known codeHash, deprecated
62
- */
63
- AddressFormat[AddressFormat["Short"] = 1] = "Short";
64
- /**
65
- * @deprecated
66
- * full version with hashType = "Data", deprecated
67
- */
68
- AddressFormat[AddressFormat["FullData"] = 2] = "FullData";
69
- /**
70
- * @deprecated
71
- * full version with hashType = "Type", deprecated
72
- */
73
- AddressFormat[AddressFormat["FullType"] = 4] = "FullType";
74
- })(AddressFormat || (exports.AddressFormat = AddressFormat = {}));
75
- exports.BECH32_LIMIT = 1023;
17
+ __exportStar(require("./address.advanced"), exports);
@@ -1,21 +1,18 @@
1
- import { DeepReadonly } from "ts-essentials";
1
+ import { Script, ScriptLike } from "../ckb";
2
2
  import { Client, KnownScript } from "../client";
3
- import { Script } from "../ckb";
4
- import { Hex } from "../primitive";
3
+ import { HexLike } from "../hex";
4
+ export type AddressLike = {
5
+ script: ScriptLike;
6
+ prefix: string;
7
+ };
5
8
  export declare class Address {
6
9
  script: Script;
7
10
  prefix: string;
8
11
  constructor(script: Script, prefix: string);
12
+ static from(address: AddressLike): Address;
9
13
  static fromString(address: string, clients: Client | Record<string, Client>): Promise<Address>;
10
- static fromScript(script: DeepReadonly<Script>, client: Client): Promise<Address>;
11
- static fromKnownScript(script: KnownScript, args: Hex, client: Client): Promise<{
12
- script: {
13
- args: `0x${string}`;
14
- codeHash: `0x${string}`;
15
- hashType: import("../ckb").HashType;
16
- };
17
- prefix: string;
18
- }>;
19
- static toString(address: DeepReadonly<Address>): string;
14
+ static fromScript(script: ScriptLike, client: Client): Promise<Address>;
15
+ static fromKnownScript(script: KnownScript, args: HexLike, client: Client): Promise<Address>;
16
+ toString(): string;
20
17
  }
21
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/address/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,MAAM,EAAkB,MAAM,QAAQ,CAAC;AAQhD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,qBAAa,OAAO;IAET,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;gBADd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;WAGV,UAAU,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,OAAO,CAAC,OAAO,CAAC;WAiBN,UAAU,CACrB,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC;WAON,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;;;;;;;;IAU3E,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM;CAUxD"}
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;AACF,qBAAa,OAAO;IAET,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;gBADd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;IAGvB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;WAQ7B,UAAU,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,OAAO,CAAC,OAAO,CAAC;WAmBN,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,QAAQ,IAAI,MAAM;CAcnB"}
@@ -1,17 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Address = void 0;
4
- const ckb_1 = require("../ckb");
5
- const advanced_1 = require("./advanced");
6
4
  const bech32_1 = require("bech32");
7
5
  const bytes_1 = require("../bytes");
6
+ const ckb_1 = require("../ckb");
7
+ const address_advanced_1 = require("./address.advanced");
8
8
  class Address {
9
9
  constructor(script, prefix) {
10
10
  this.script = script;
11
11
  this.prefix = prefix;
12
12
  }
13
+ static from(address) {
14
+ if (address instanceof Address) {
15
+ return address;
16
+ }
17
+ return new Address(ckb_1.Script.from(address.script), address.prefix);
18
+ }
13
19
  static async fromString(address, clients) {
14
- const { prefix, format, payload } = (0, advanced_1.parseAddressToPayload)(address);
20
+ const { prefix, format, payload } = (0, address_advanced_1.addressPayloadFromString)(address);
15
21
  const client = clients[prefix] ?? clients;
16
22
  if (!client) {
17
23
  throw new Error(`Unknown address prefix ${prefix}`);
@@ -20,26 +26,20 @@ class Address {
20
26
  if (expectedPrefix !== prefix) {
21
27
  throw new Error(`Unknown address prefix ${prefix}, expected ${expectedPrefix}`);
22
28
  }
23
- return advanced_1.Address.fromAddressPayload(prefix, format, payload, client);
29
+ return Address.from(await (0, address_advanced_1.addressFromPayload)(prefix, format, payload, client));
24
30
  }
25
31
  static async fromScript(script, client) {
26
- return {
27
- script: { ...script },
28
- prefix: await client.getAddressPrefix(),
29
- };
32
+ return new Address(ckb_1.Script.from(script), await client.getAddressPrefix());
30
33
  }
31
34
  static async fromKnownScript(script, args, client) {
32
- return {
33
- script: {
34
- ...(await client.getKnownScript(script)),
35
- args,
36
- },
37
- prefix: await client.getAddressPrefix(),
38
- };
35
+ return new Address(ckb_1.Script.from({
36
+ ...(await client.getKnownScript(script)),
37
+ args,
38
+ }), await client.getAddressPrefix());
39
39
  }
40
- static toString(address) {
41
- const data = (0, bytes_1.concatBytes)([advanced_1.AddressFormat.Full], (0, bytes_1.toBytes)(address.script.codeHash), (0, ckb_1.encodeHashType)(address.script.hashType), (0, bytes_1.toBytes)(address.script.args));
42
- return bech32_1.bech32m.encode(address.prefix, bech32_1.bech32m.toWords(data), advanced_1.BECH32_LIMIT);
40
+ toString() {
41
+ 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));
42
+ return bech32_1.bech32m.encode(this.prefix, bech32_1.bech32m.toWords(data), address_advanced_1.ADDRESS_BECH32_LIMIT);
43
43
  }
44
44
  }
45
45
  exports.Address = Address;
@@ -1,4 +1,5 @@
1
1
  export * from "./address/advanced";
2
2
  export * from "./ckb/advanced";
3
3
  export * from "./client/advanced";
4
+ export * from "./hasher/advanced";
4
5
  //# sourceMappingURL=advancedBarrel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"advancedBarrel.d.ts","sourceRoot":"","sources":["../src/advancedBarrel.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"advancedBarrel.d.ts","sourceRoot":"","sources":["../src/advancedBarrel.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
@@ -17,3 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./address/advanced"), exports);
18
18
  __exportStar(require("./ckb/advanced"), exports);
19
19
  __exportStar(require("./client/advanced"), exports);
20
+ __exportStar(require("./hasher/advanced"), exports);
package/dist/barrel.d.ts CHANGED
@@ -3,7 +3,9 @@ export * from "./bytes";
3
3
  export * from "./ckb";
4
4
  export * from "./client";
5
5
  export * from "./fixedPoint";
6
- export * from "./primitive";
6
+ export * from "./hasher";
7
+ export * from "./hex";
8
+ export * from "./num";
7
9
  export * from "./signer";
8
- export * from "./viewer";
10
+ export * from "./utils";
9
11
  //# sourceMappingURL=barrel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../src/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../src/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
package/dist/barrel.js CHANGED
@@ -19,6 +19,8 @@ __exportStar(require("./bytes"), exports);
19
19
  __exportStar(require("./ckb"), exports);
20
20
  __exportStar(require("./client"), exports);
21
21
  __exportStar(require("./fixedPoint"), exports);
22
- __exportStar(require("./primitive"), exports);
22
+ __exportStar(require("./hasher"), exports);
23
+ __exportStar(require("./hex"), exports);
24
+ __exportStar(require("./num"), exports);
23
25
  __exportStar(require("./signer"), exports);
24
- __exportStar(require("./viewer"), exports);
26
+ __exportStar(require("./utils"), exports);
@@ -0,0 +1,7 @@
1
+ export type Bytes = Uint8Array;
2
+ export type BytesLike = string | Uint8Array | ArrayBuffer | number[];
3
+ export declare function bytesConcat(...args: BytesLike[]): Bytes;
4
+ export declare function bytesFromUtf8(val: string): Bytes;
5
+ export declare function bytesToUtf8(val: BytesLike): string;
6
+ export declare function bytesFrom(bytes: BytesLike): Bytes;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bytes/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAC/B,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,EAAE,CAAC;AAErE,wBAAgB,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAOvD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAEhD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAElD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAuBjD"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bytesFrom = exports.bytesToUtf8 = exports.bytesFromUtf8 = exports.bytesConcat = void 0;
4
+ const buffer_1 = require("buffer/");
5
+ function bytesConcat(...args) {
6
+ return new Uint8Array(args.reduce((acc, v) => {
7
+ acc.push(...bytesFrom(v));
8
+ return acc;
9
+ }, []));
10
+ }
11
+ exports.bytesConcat = bytesConcat;
12
+ function bytesFromUtf8(val) {
13
+ return buffer_1.Buffer.from(val, "utf-8");
14
+ }
15
+ exports.bytesFromUtf8 = bytesFromUtf8;
16
+ function bytesToUtf8(val) {
17
+ return buffer_1.Buffer.from(bytesFrom(val)).toString("utf-8");
18
+ }
19
+ exports.bytesToUtf8 = bytesToUtf8;
20
+ function bytesFrom(bytes) {
21
+ if (bytes instanceof Uint8Array) {
22
+ return bytes;
23
+ }
24
+ if (bytes instanceof ArrayBuffer) {
25
+ return new Uint8Array(bytes);
26
+ }
27
+ if (Array.isArray(bytes)) {
28
+ if (bytes.some((v) => v < 0 || 0xff < v)) {
29
+ throw new Error(`Invalid bytes ${JSON.stringify(bytes)}`);
30
+ }
31
+ return new Uint8Array(bytes);
32
+ }
33
+ const str = bytes.startsWith("0x") ? bytes.slice(2) : bytes;
34
+ const paddedStr = str.length % 2 === 0 ? str : `0${str}`;
35
+ const data = buffer_1.Buffer.from(paddedStr, "hex");
36
+ if (data.length * 2 !== paddedStr.length) {
37
+ throw new Error(`Invalid bytes ${bytes}`);
38
+ }
39
+ return data;
40
+ }
41
+ exports.bytesFrom = bytesFrom;
@@ -1,3 +1,4 @@
1
- export * from "./hasher.advanced";
2
- export * from "./types/advanced";
1
+ export * as moleculeCodecCkb from "./molecule.advanced";
2
+ export * from "./script.advanced";
3
+ export * from "./transaction.advanced";
3
4
  //# sourceMappingURL=advanced.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../src/ckb/advanced.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../src/ckb/advanced.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AACxD,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
@@ -10,9 +10,23 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
13
25
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
26
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
27
  };
16
28
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./hasher.advanced"), exports);
18
- __exportStar(require("./types/advanced"), exports);
29
+ exports.moleculeCodecCkb = void 0;
30
+ exports.moleculeCodecCkb = __importStar(require("./molecule.advanced"));
31
+ __exportStar(require("./script.advanced"), exports);
32
+ __exportStar(require("./transaction.advanced"), exports);
@@ -1,4 +1,3 @@
1
- export * from "./hasher";
2
- export * from "./types";
3
- export * from "./viewerCkbScript";
1
+ export * from "./script";
2
+ export * from "./transaction";
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ckb/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ckb/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
package/dist/ckb/index.js CHANGED
@@ -14,6 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./hasher"), exports);
18
- __exportStar(require("./types"), exports);
19
- __exportStar(require("./viewerCkbScript"), exports);
17
+ __exportStar(require("./script"), exports);
18
+ __exportStar(require("./transaction"), exports);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../../src/ckb/molecule.advanced/generated.js"],"names":[],"mappings":"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"}