@ckb-ccc/core 1.2.3 → 1.3.0

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 (140) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/advancedBarrel.d.ts +1 -0
  3. package/dist/advancedBarrel.d.ts.map +1 -1
  4. package/dist/advancedBarrel.js +1 -0
  5. package/dist/barrel.d.ts +1 -0
  6. package/dist/barrel.d.ts.map +1 -1
  7. package/dist/barrel.js +1 -0
  8. package/dist/ckb/script.d.ts +1 -0
  9. package/dist/ckb/script.d.ts.map +1 -1
  10. package/dist/ckb/script.js +1 -0
  11. package/dist/ckb/transaction.d.ts +3 -1
  12. package/dist/ckb/transaction.d.ts.map +1 -1
  13. package/dist/ckb/transaction.js +25 -2
  14. package/dist/client/advanced.d.ts +0 -1
  15. package/dist/client/advanced.d.ts.map +1 -1
  16. package/dist/client/advanced.js +0 -1
  17. package/dist/client/clientPublicMainnet.d.ts +3 -9
  18. package/dist/client/clientPublicMainnet.d.ts.map +1 -1
  19. package/dist/client/clientPublicTestnet.d.ts +3 -9
  20. package/dist/client/clientPublicTestnet.d.ts.map +1 -1
  21. package/dist/client/jsonRpc/client.d.ts +160 -0
  22. package/dist/client/jsonRpc/client.d.ts.map +1 -0
  23. package/dist/client/jsonRpc/client.js +220 -0
  24. package/dist/client/jsonRpc/index.d.ts +1 -182
  25. package/dist/client/jsonRpc/index.d.ts.map +1 -1
  26. package/dist/client/jsonRpc/index.js +1 -293
  27. package/dist/jsonRpc/advanced.d.ts +2 -0
  28. package/dist/jsonRpc/advanced.d.ts.map +1 -0
  29. package/dist/jsonRpc/advanced.js +1 -0
  30. package/dist/jsonRpc/index.d.ts +2 -0
  31. package/dist/jsonRpc/index.d.ts.map +1 -0
  32. package/dist/jsonRpc/index.js +1 -0
  33. package/dist/jsonRpc/requestor.d.ts +48 -0
  34. package/dist/jsonRpc/requestor.d.ts.map +1 -0
  35. package/dist/jsonRpc/requestor.js +107 -0
  36. package/dist/jsonRpc/transports/advanced.d.ts +5 -0
  37. package/dist/jsonRpc/transports/advanced.d.ts.map +1 -0
  38. package/dist/jsonRpc/transports/advanced.js +4 -0
  39. package/dist/{client/transports/advanced.d.ts → jsonRpc/transports/factory.d.ts} +1 -4
  40. package/dist/jsonRpc/transports/factory.d.ts.map +1 -0
  41. package/dist/{client/transports/advanced.js → jsonRpc/transports/factory.js} +0 -3
  42. package/dist/jsonRpc/transports/http.d.ts.map +1 -0
  43. package/dist/jsonRpc/transports/transport.d.ts +18 -0
  44. package/dist/jsonRpc/transports/transport.d.ts.map +1 -0
  45. package/dist/jsonRpc/transports/webSocket.d.ts.map +1 -0
  46. package/dist/molecule/predefined.d.ts +12 -0
  47. package/dist/molecule/predefined.d.ts.map +1 -1
  48. package/dist/molecule/predefined.js +28 -0
  49. package/dist/num/index.d.ts.map +1 -1
  50. package/dist/num/index.js +5 -1
  51. package/dist.commonjs/advancedBarrel.d.ts +1 -0
  52. package/dist.commonjs/advancedBarrel.d.ts.map +1 -1
  53. package/dist.commonjs/advancedBarrel.js +1 -0
  54. package/dist.commonjs/barrel.d.ts +1 -0
  55. package/dist.commonjs/barrel.d.ts.map +1 -1
  56. package/dist.commonjs/barrel.js +1 -0
  57. package/dist.commonjs/ckb/script.d.ts +1 -0
  58. package/dist.commonjs/ckb/script.d.ts.map +1 -1
  59. package/dist.commonjs/ckb/script.js +2 -1
  60. package/dist.commonjs/ckb/transaction.d.ts +3 -1
  61. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  62. package/dist.commonjs/ckb/transaction.js +25 -2
  63. package/dist.commonjs/client/advanced.d.ts +0 -1
  64. package/dist.commonjs/client/advanced.d.ts.map +1 -1
  65. package/dist.commonjs/client/advanced.js +0 -1
  66. package/dist.commonjs/client/clientPublicMainnet.d.ts +3 -9
  67. package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
  68. package/dist.commonjs/client/clientPublicTestnet.d.ts +3 -9
  69. package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -1
  70. package/dist.commonjs/client/jsonRpc/client.d.ts +160 -0
  71. package/dist.commonjs/client/jsonRpc/client.d.ts.map +1 -0
  72. package/dist.commonjs/client/jsonRpc/client.js +224 -0
  73. package/dist.commonjs/client/jsonRpc/index.d.ts +1 -182
  74. package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
  75. package/dist.commonjs/client/jsonRpc/index.js +15 -295
  76. package/dist.commonjs/jsonRpc/advanced.d.ts +2 -0
  77. package/dist.commonjs/jsonRpc/advanced.d.ts.map +1 -0
  78. package/dist.commonjs/jsonRpc/advanced.js +17 -0
  79. package/dist.commonjs/jsonRpc/index.d.ts +2 -0
  80. package/dist.commonjs/jsonRpc/index.d.ts.map +1 -0
  81. package/dist.commonjs/jsonRpc/index.js +17 -0
  82. package/dist.commonjs/jsonRpc/requestor.d.ts +48 -0
  83. package/dist.commonjs/jsonRpc/requestor.d.ts.map +1 -0
  84. package/dist.commonjs/jsonRpc/requestor.js +111 -0
  85. package/dist.commonjs/jsonRpc/transports/advanced.d.ts +5 -0
  86. package/dist.commonjs/jsonRpc/transports/advanced.d.ts.map +1 -0
  87. package/dist.commonjs/{client → jsonRpc}/transports/advanced.js +1 -9
  88. package/dist.commonjs/{client/transports/advanced.d.ts → jsonRpc/transports/factory.d.ts} +1 -4
  89. package/dist.commonjs/jsonRpc/transports/factory.d.ts.map +1 -0
  90. package/dist.commonjs/jsonRpc/transports/factory.js +11 -0
  91. package/dist.commonjs/jsonRpc/transports/http.d.ts.map +1 -0
  92. package/dist.commonjs/jsonRpc/transports/transport.d.ts +18 -0
  93. package/dist.commonjs/jsonRpc/transports/transport.d.ts.map +1 -0
  94. package/dist.commonjs/jsonRpc/transports/webSocket.d.ts.map +1 -0
  95. package/dist.commonjs/molecule/predefined.d.ts +12 -0
  96. package/dist.commonjs/molecule/predefined.d.ts.map +1 -1
  97. package/dist.commonjs/molecule/predefined.js +30 -1
  98. package/dist.commonjs/num/index.d.ts.map +1 -1
  99. package/dist.commonjs/num/index.js +5 -1
  100. package/package.json +1 -1
  101. package/src/advancedBarrel.ts +1 -0
  102. package/src/barrel.ts +1 -0
  103. package/src/ckb/script.ts +1 -0
  104. package/src/ckb/transaction.ts +52 -2
  105. package/src/client/advanced.ts +0 -1
  106. package/src/client/clientPublicMainnet.ts +2 -8
  107. package/src/client/clientPublicTestnet.ts +2 -8
  108. package/src/client/jsonRpc/client.ts +395 -0
  109. package/src/client/jsonRpc/index.ts +1 -490
  110. package/src/jsonRpc/advanced.ts +1 -0
  111. package/src/jsonRpc/index.ts +1 -0
  112. package/src/jsonRpc/requestor.ts +157 -0
  113. package/src/jsonRpc/transports/advanced.ts +4 -0
  114. package/src/{client/transports/advanced.ts → jsonRpc/transports/factory.ts} +0 -4
  115. package/src/jsonRpc/transports/transport.ts +18 -0
  116. package/src/molecule/predefined.ts +32 -0
  117. package/src/num/index.ts +5 -1
  118. package/dist/client/transports/advanced.d.ts.map +0 -1
  119. package/dist/client/transports/http.d.ts.map +0 -1
  120. package/dist/client/transports/transport.d.ts +0 -10
  121. package/dist/client/transports/transport.d.ts.map +0 -1
  122. package/dist/client/transports/webSocket.d.ts.map +0 -1
  123. package/dist.commonjs/client/transports/advanced.d.ts.map +0 -1
  124. package/dist.commonjs/client/transports/http.d.ts.map +0 -1
  125. package/dist.commonjs/client/transports/transport.d.ts +0 -10
  126. package/dist.commonjs/client/transports/transport.d.ts.map +0 -1
  127. package/dist.commonjs/client/transports/webSocket.d.ts.map +0 -1
  128. package/src/client/transports/transport.ts +0 -10
  129. /package/dist/{client → jsonRpc}/transports/http.d.ts +0 -0
  130. /package/dist/{client → jsonRpc}/transports/http.js +0 -0
  131. /package/dist/{client → jsonRpc}/transports/transport.js +0 -0
  132. /package/dist/{client → jsonRpc}/transports/webSocket.d.ts +0 -0
  133. /package/dist/{client → jsonRpc}/transports/webSocket.js +0 -0
  134. /package/dist.commonjs/{client → jsonRpc}/transports/http.d.ts +0 -0
  135. /package/dist.commonjs/{client → jsonRpc}/transports/http.js +0 -0
  136. /package/dist.commonjs/{client → jsonRpc}/transports/transport.js +0 -0
  137. /package/dist.commonjs/{client → jsonRpc}/transports/webSocket.d.ts +0 -0
  138. /package/dist.commonjs/{client → jsonRpc}/transports/webSocket.js +0 -0
  139. /package/src/{client → jsonRpc}/transports/http.ts +0 -0
  140. /package/src/{client → jsonRpc}/transports/webSocket.ts +0 -0
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestorJsonRpc = void 0;
4
+ const advanced_js_1 = require("./transports/advanced.js");
5
+ /**
6
+ * Applies a transformation function to a value if the transformer is provided.
7
+ *
8
+ * @param value - The value to be transformed.
9
+ * @param transformer - An optional transformation function.
10
+ * @returns The transformed value if a transformer is provided, otherwise the original value.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const result = transform(5, (x) => x * 2); // Outputs 10
15
+ * const resultWithoutTransformer = transform(5); // Outputs 5
16
+ * ```
17
+ */
18
+ function transform(value, transformer) {
19
+ if (transformer) {
20
+ return transformer(value);
21
+ }
22
+ return value;
23
+ }
24
+ class RequestorJsonRpc {
25
+ /**
26
+ * Creates an instance of ClientJsonRpc.
27
+ *
28
+ * @param url_ - The URL of the JSON-RPC server.
29
+ * @param timeout - The timeout for requests in milliseconds
30
+ */
31
+ constructor(url_, config, onError) {
32
+ this.url_ = url_;
33
+ this.onError = onError;
34
+ this.concurrent = 0;
35
+ this.pending = [];
36
+ this.id = 0;
37
+ this.maxConcurrent = config?.maxConcurrent;
38
+ this.transport = config?.transport ?? (0, advanced_js_1.transportFromUri)(url_, config);
39
+ }
40
+ /**
41
+ * Returns the URL of the JSON-RPC server.
42
+ *
43
+ * @returns The URL of the JSON-RPC server.
44
+ */
45
+ get url() {
46
+ return this.url_;
47
+ }
48
+ /**
49
+ * request a JSON-RPC method.
50
+ *
51
+ * @param rpcMethod - The JSON-RPC method.
52
+ * @param params - Params for the method.
53
+ * @param inTransformers - An array of input transformers.
54
+ * @param outTransformer - An output transformer function.
55
+ * @returns Method response.
56
+ */
57
+ async request(rpcMethod, params,
58
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
+ inTransformers,
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
+ outTransformer) {
62
+ const payload = this.buildPayload(rpcMethod, inTransformers
63
+ ? await Promise.all(params
64
+ .concat(Array.from(new Array(Math.max(inTransformers.length - params.length, 0))))
65
+ .map((v, i) => transform(v, inTransformers[i])))
66
+ : params);
67
+ try {
68
+ return await transform(await this.requestPayload(payload), outTransformer);
69
+ }
70
+ catch (err) {
71
+ if (!this.onError) {
72
+ throw err;
73
+ }
74
+ await this.onError(err);
75
+ }
76
+ }
77
+ async requestPayload(payload) {
78
+ if (this.maxConcurrent !== undefined &&
79
+ this.concurrent >= this.maxConcurrent) {
80
+ const pending = new Promise((resolve) => this.pending.push(resolve));
81
+ await pending;
82
+ }
83
+ this.concurrent += 1;
84
+ const res = (await this.transport.request(payload));
85
+ this.concurrent -= 1;
86
+ this.pending.shift()?.();
87
+ if (res.id !== payload.id) {
88
+ throw new Error(`Id mismatched, got ${res.id}, expected ${payload.id}`);
89
+ }
90
+ if (res.error) {
91
+ throw res.error;
92
+ }
93
+ return res.result;
94
+ }
95
+ /**
96
+ * Builds a JSON-RPC payload for the given method and parameters.
97
+ *
98
+ * @param method - The JSON-RPC method name.
99
+ * @param req - The parameters for the JSON-RPC method.
100
+ * @returns The JSON-RPC payload.
101
+ */
102
+ buildPayload(method, req) {
103
+ return {
104
+ id: this.id++,
105
+ method,
106
+ params: req,
107
+ jsonrpc: "2.0",
108
+ };
109
+ }
110
+ }
111
+ exports.RequestorJsonRpc = RequestorJsonRpc;
@@ -0,0 +1,5 @@
1
+ export * from "./factory.js";
2
+ export * from "./http.js";
3
+ export * from "./transport.js";
4
+ export * from "./webSocket.js";
5
+ //# sourceMappingURL=advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../../src/jsonRpc/transports/advanced.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -14,15 +14,7 @@ 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
- exports.transportFromUri = transportFromUri;
18
- const http_js_1 = require("./http.js");
19
- const webSocket_js_1 = require("./webSocket.js");
17
+ __exportStar(require("./factory.js"), exports);
20
18
  __exportStar(require("./http.js"), exports);
21
19
  __exportStar(require("./transport.js"), exports);
22
20
  __exportStar(require("./webSocket.js"), exports);
23
- function transportFromUri(uri, config) {
24
- if (uri.startsWith("wss://") || uri.startsWith("ws://")) {
25
- return new webSocket_js_1.TransportWebSocket(uri, config?.timeout);
26
- }
27
- return new http_js_1.TransportHttp(uri, config?.timeout);
28
- }
@@ -1,9 +1,6 @@
1
1
  import { TransportHttp } from "./http.js";
2
2
  import { TransportWebSocket } from "./webSocket.js";
3
- export * from "./http.js";
4
- export * from "./transport.js";
5
- export * from "./webSocket.js";
6
3
  export declare function transportFromUri(uri: string, config?: {
7
4
  timeout?: number;
8
5
  }): TransportHttp | TransportWebSocket;
9
- //# sourceMappingURL=advanced.d.ts.map
6
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/jsonRpc/transports/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,sCAM1E"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transportFromUri = transportFromUri;
4
+ const http_js_1 = require("./http.js");
5
+ const webSocket_js_1 = require("./webSocket.js");
6
+ function transportFromUri(uri, config) {
7
+ if (uri.startsWith("wss://") || uri.startsWith("ws://")) {
8
+ return new webSocket_js_1.TransportWebSocket(uri, config?.timeout);
9
+ }
10
+ return new http_js_1.TransportHttp(uri, config?.timeout);
11
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/jsonRpc/transports/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,aAAc,YAAW,SAAS;IAE3C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAG5B,OAAO,CAAC,OAAO,EAAE,cAAc;CAmBtC"}
@@ -0,0 +1,18 @@
1
+ export type JsonRpcPayload = {
2
+ id: number;
3
+ jsonrpc: "2.0";
4
+ method: string;
5
+ params: unknown[] | Record<string, unknown>;
6
+ };
7
+ export interface Transport {
8
+ /**
9
+ * Sends a JSON-RPC request to the server.
10
+ *
11
+ * @param payload - The JSON-RPC payload to send.
12
+ * @returns The result of the JSON-RPC request.
13
+ *
14
+ * @throws Will throw an error if the response ID does not match the request ID, or if the response contains an error.
15
+ */
16
+ request(data: JsonRpcPayload): Promise<unknown>;
17
+ }
18
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/jsonRpc/transports/transport.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB;;;;;;;OAOG;IACH,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webSocket.d.ts","sourceRoot":"","sources":["../../../src/jsonRpc/transports/webSocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,kBAAmB,YAAW,SAAS;IAahD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAb1B,OAAO,CAAC,OAAO,CAOD;IACd,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAqB;gBAGrB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ;IAGlC,OAAO,CAAC,IAAI,EAAE,cAAc;CAyF7B"}
@@ -36,6 +36,18 @@ export declare const Uint512Vec: Codec<import("../barrel.js").NumLike[], bigint[
36
36
  export declare const Bytes: Codec<HexLike, Hex>;
37
37
  export declare const BytesOpt: Codec<import("../bytes/index.js").BytesLike | null | undefined, `0x${string}` | undefined>;
38
38
  export declare const BytesVec: Codec<import("../bytes/index.js").BytesLike[], `0x${string}`[]>;
39
+ export declare const Bool: Codec<boolean>;
40
+ export declare const BoolOpt: Codec<boolean | null | undefined, boolean | undefined>;
41
+ export declare const BoolVec: Codec<boolean[], boolean[]>;
42
+ export declare const Byte4: Codec<HexLike, Hex>;
43
+ export declare const Byte4Opt: Codec<import("../bytes/index.js").BytesLike | null | undefined, `0x${string}` | undefined>;
44
+ export declare const Byte4Vec: Codec<import("../bytes/index.js").BytesLike[], `0x${string}`[]>;
45
+ export declare const Byte8: Codec<HexLike, Hex>;
46
+ export declare const Byte8Opt: Codec<import("../bytes/index.js").BytesLike | null | undefined, `0x${string}` | undefined>;
47
+ export declare const Byte8Vec: Codec<import("../bytes/index.js").BytesLike[], `0x${string}`[]>;
48
+ export declare const Byte16: Codec<HexLike, Hex>;
49
+ export declare const Byte16Opt: Codec<import("../bytes/index.js").BytesLike | null | undefined, `0x${string}` | undefined>;
50
+ export declare const Byte16Vec: Codec<import("../bytes/index.js").BytesLike[], `0x${string}`[]>;
39
51
  export declare const Byte32: Codec<HexLike, Hex>;
40
52
  export declare const Byte32Opt: Codec<import("../bytes/index.js").BytesLike | null | undefined, `0x${string}` | undefined>;
41
53
  export declare const Byte32Vec: Codec<import("../bytes/index.js").BytesLike[], `0x${string}`[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"predefined.d.ts","sourceRoot":"","sources":["../../src/molecule/predefined.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAW,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAW,KAAK,EAAoC,MAAM,YAAY,CAAC;AAE9E,eAAO,MAAM,KAAK,+CAAsB,CAAC;AACzC,eAAO,MAAM,QAAQ,8EAAgB,CAAC;AACtC,eAAO,MAAM,QAAQ,mDAAgB,CAAC;AAEtC,eAAO,MAAM,QAAQ,+CAAsB,CAAC;AAC5C,eAAO,MAAM,QAAQ,+CAAgB,CAAC;AACtC,eAAO,MAAM,MAAM,+CAAW,CAAC;AAC/B,eAAO,MAAM,SAAS,8EAAiB,CAAC;AACxC,eAAO,MAAM,SAAS,mDAAiB,CAAC;AAExC,eAAO,MAAM,QAAQ,+CAAsB,CAAC;AAC5C,eAAO,MAAM,QAAQ,+CAAgB,CAAC;AACtC,eAAO,MAAM,MAAM,+CAAW,CAAC;AAC/B,eAAO,MAAM,SAAS,8EAAiB,CAAC;AACxC,eAAO,MAAM,SAAS,mDAAiB,CAAC;AAExC,eAAO,MAAM,QAAQ,+CAAgB,CAAC;AACtC,eAAO,MAAM,QAAQ,+CAAU,CAAC;AAChC,eAAO,MAAM,MAAM,+CAAW,CAAC;AAC/B,eAAO,MAAM,SAAS,8EAAiB,CAAC;AACxC,eAAO,MAAM,SAAS,mDAAiB,CAAC;AAExC,eAAO,MAAM,SAAS,+CAAiB,CAAC;AACxC,eAAO,MAAM,SAAS,+CAAW,CAAC;AAClC,eAAO,MAAM,OAAO,+CAAY,CAAC;AACjC,eAAO,MAAM,UAAU,8EAAkB,CAAC;AAC1C,eAAO,MAAM,UAAU,mDAAkB,CAAC;AAE1C,eAAO,MAAM,SAAS,+CAAiB,CAAC;AACxC,eAAO,MAAM,SAAS,+CAAW,CAAC;AAClC,eAAO,MAAM,OAAO,+CAAY,CAAC;AACjC,eAAO,MAAM,UAAU,8EAAkB,CAAC;AAC1C,eAAO,MAAM,UAAU,mDAAkB,CAAC;AAE1C,eAAO,MAAM,SAAS,+CAAiB,CAAC;AACxC,eAAO,MAAM,SAAS,+CAAW,CAAC;AAClC,eAAO,MAAM,OAAO,+CAAY,CAAC;AACjC,eAAO,MAAM,UAAU,8EAAkB,CAAC;AAC1C,eAAO,MAAM,UAAU,mDAAkB,CAAC;AAE1C,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAGpC,CAAC;AACH,eAAO,MAAM,QAAQ,4FAAgB,CAAC;AACtC,eAAO,MAAM,QAAQ,iEAAgB,CAAC;AAEtC,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAIrC,CAAC;AACH,eAAO,MAAM,SAAS,4FAAiB,CAAC;AACxC,eAAO,MAAM,SAAS,iEAAiB,CAAC;AAExC,eAAO,MAAM,MAAM,uBAGjB,CAAC;AACH,eAAO,MAAM,SAAS,2BAAiB,CAAC;AACxC,eAAO,MAAM,SAAS,sDAAiB,CAAC"}
1
+ {"version":3,"file":"predefined.d.ts","sourceRoot":"","sources":["../../src/molecule/predefined.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StringOpt = exports.StringVec = exports.String = exports.Byte32Vec = exports.Byte32Opt = exports.Byte32 = exports.BytesVec = exports.BytesOpt = exports.Bytes = exports.Uint512Vec = exports.Uint512Opt = exports.Uint512 = exports.Uint512BE = exports.Uint512LE = exports.Uint256Vec = exports.Uint256Opt = exports.Uint256 = exports.Uint256BE = exports.Uint256LE = exports.Uint128Vec = exports.Uint128Opt = exports.Uint128 = exports.Uint128BE = exports.Uint128LE = exports.Uint64Vec = exports.Uint64Opt = exports.Uint64 = exports.Uint64BE = exports.Uint64LE = exports.Uint32Vec = exports.Uint32Opt = exports.Uint32 = exports.Uint32BE = exports.Uint32LE = exports.Uint16Vec = exports.Uint16Opt = exports.Uint16 = exports.Uint16BE = exports.Uint16LE = exports.Uint8Vec = exports.Uint8Opt = exports.Uint8 = void 0;
3
+ exports.Byte32Opt = exports.Byte32 = exports.Byte16Vec = exports.Byte16Opt = exports.Byte16 = exports.Byte8Vec = exports.Byte8Opt = exports.Byte8 = exports.Byte4Vec = exports.Byte4Opt = exports.Byte4 = exports.BoolVec = exports.BoolOpt = exports.Bool = exports.BytesVec = exports.BytesOpt = exports.Bytes = exports.Uint512Vec = exports.Uint512Opt = exports.Uint512 = exports.Uint512BE = exports.Uint512LE = exports.Uint256Vec = exports.Uint256Opt = exports.Uint256 = exports.Uint256BE = exports.Uint256LE = exports.Uint128Vec = exports.Uint128Opt = exports.Uint128 = exports.Uint128BE = exports.Uint128LE = exports.Uint64Vec = exports.Uint64Opt = exports.Uint64 = exports.Uint64BE = exports.Uint64LE = exports.Uint32Vec = exports.Uint32Opt = exports.Uint32 = exports.Uint32BE = exports.Uint32LE = exports.Uint16Vec = exports.Uint16Opt = exports.Uint16 = exports.Uint16BE = exports.Uint16LE = exports.Uint8Vec = exports.Uint8Opt = exports.Uint8 = void 0;
4
+ exports.StringOpt = exports.StringVec = exports.String = exports.Byte32Vec = void 0;
4
5
  const index_js_1 = require("../bytes/index.js");
5
6
  const index_js_2 = require("../hex/index.js");
6
7
  const codec_js_1 = require("./codec.js");
@@ -43,6 +44,34 @@ exports.Bytes = (0, codec_js_1.byteVec)({
43
44
  });
44
45
  exports.BytesOpt = (0, codec_js_1.option)(exports.Bytes);
45
46
  exports.BytesVec = (0, codec_js_1.vector)(exports.Bytes);
47
+ exports.Bool = codec_js_1.Codec.from({
48
+ byteLength: 1,
49
+ encode: (value) => (0, index_js_1.bytesFrom)(value ? [1] : [0]),
50
+ decode: (buffer) => (0, index_js_1.bytesFrom)(buffer)[0] !== 0,
51
+ });
52
+ exports.BoolOpt = (0, codec_js_1.option)(exports.Bool);
53
+ exports.BoolVec = (0, codec_js_1.vector)(exports.Bool);
54
+ exports.Byte4 = codec_js_1.Codec.from({
55
+ byteLength: 4,
56
+ encode: (value) => (0, index_js_1.bytesFrom)(value),
57
+ decode: (buffer) => (0, index_js_2.hexFrom)(buffer),
58
+ });
59
+ exports.Byte4Opt = (0, codec_js_1.option)(exports.Byte4);
60
+ exports.Byte4Vec = (0, codec_js_1.vector)(exports.Byte4);
61
+ exports.Byte8 = codec_js_1.Codec.from({
62
+ byteLength: 8,
63
+ encode: (value) => (0, index_js_1.bytesFrom)(value),
64
+ decode: (buffer) => (0, index_js_2.hexFrom)(buffer),
65
+ });
66
+ exports.Byte8Opt = (0, codec_js_1.option)(exports.Byte8);
67
+ exports.Byte8Vec = (0, codec_js_1.vector)(exports.Byte8);
68
+ exports.Byte16 = codec_js_1.Codec.from({
69
+ byteLength: 16,
70
+ encode: (value) => (0, index_js_1.bytesFrom)(value),
71
+ decode: (buffer) => (0, index_js_2.hexFrom)(buffer),
72
+ });
73
+ exports.Byte16Opt = (0, codec_js_1.option)(exports.Byte16);
74
+ exports.Byte16Vec = (0, codec_js_1.vector)(exports.Byte16);
46
75
  exports.Byte32 = codec_js_1.Codec.from({
47
76
  byteLength: 32,
48
77
  encode: (value) => (0, index_js_1.bytesFrom)(value),
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/num/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAA0B,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AAExD;;;GAGG;AACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC;AAEzB;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAS7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAS7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAUzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAE1C;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAE9D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAEhE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAOhE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,CAEhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,CAQlD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,CAElD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/num/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAA0B,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AAExD;;;GAGG;AACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC;AAEzB;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAS7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAS7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAczC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAE1C;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAE9D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAEhE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAOhE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,CAEhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,CAQlD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,CAElD"}
@@ -76,7 +76,11 @@ function numFrom(val) {
76
76
  if (typeof val === "string" || typeof val === "number") {
77
77
  return BigInt(val);
78
78
  }
79
- return BigInt((0, index_js_2.hexFrom)(val));
79
+ const hex = (0, index_js_2.hexFrom)(val);
80
+ if (hex === "0x") {
81
+ return BigInt(0);
82
+ }
83
+ return BigInt(hex);
80
84
  }
81
85
  /**
82
86
  * Converts a NumLike value to a hexadecimal string.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckb-ccc/core",
3
- "version": "1.2.3",
3
+ "version": "1.3.0",
4
4
  "description": "Core of CCC - CKBer's Codebase",
5
5
  "author": "Hanssen0 <hanssen0@hanssen0.com>",
6
6
  "license": "MIT",
@@ -3,3 +3,4 @@ export * from "./bytes/advanced.js";
3
3
  export * from "./ckb/advanced.js";
4
4
  export * from "./client/advanced.js";
5
5
  export * from "./hasher/advanced.js";
6
+ export * from "./jsonRpc/advanced.js";
package/src/barrel.ts CHANGED
@@ -5,6 +5,7 @@ export * from "./client/index.js";
5
5
  export * from "./fixedPoint/index.js";
6
6
  export * from "./hasher/index.js";
7
7
  export * from "./hex/index.js";
8
+ export * from "./jsonRpc/index.js";
8
9
  export * from "./keystore/index.js";
9
10
  export * from "./molecule/index.js";
10
11
  export * from "./num/index.js";
package/src/ckb/script.ts CHANGED
@@ -211,3 +211,4 @@ export class Script extends mol.Entity.Base<ScriptLike, Script>() {
211
211
  }
212
212
 
213
213
  export const ScriptOpt = mol.option(Script);
214
+ export const ScriptVec = mol.vector(Script);
@@ -1487,8 +1487,13 @@ export class Transaction extends mol.Entity.Base<
1487
1487
  return addedCount;
1488
1488
  }
1489
1489
 
1490
- async completeInputsByUdt(from: Signer, type: ScriptLike): Promise<number> {
1491
- const exceptedBalance = this.getOutputsUdtBalance(type);
1490
+ async completeInputsByUdt(
1491
+ from: Signer,
1492
+ type: ScriptLike,
1493
+ balanceTweak?: NumLike,
1494
+ ): Promise<number> {
1495
+ const exceptedBalance =
1496
+ this.getOutputsUdtBalance(type) + numFrom(balanceTweak ?? 0);
1492
1497
  const inputsBalance = await this.getInputsUdtBalance(from.client, type);
1493
1498
  if (inputsBalance >= exceptedBalance) {
1494
1499
  return 0;
@@ -1517,6 +1522,51 @@ export class Transaction extends mol.Entity.Base<
1517
1522
  );
1518
1523
  }
1519
1524
 
1525
+ async completeInputsAddOne(
1526
+ from: Signer,
1527
+ filter?: ClientCollectableSearchKeyFilterLike,
1528
+ ): Promise<number> {
1529
+ for await (const cell of from.findCells(
1530
+ filter ?? {
1531
+ scriptLenRange: [0, 1],
1532
+ outputDataLenRange: [0, 1],
1533
+ },
1534
+ true,
1535
+ undefined,
1536
+ 1,
1537
+ )) {
1538
+ if (
1539
+ this.inputs.some(({ previousOutput }) =>
1540
+ previousOutput.eq(cell.outPoint),
1541
+ )
1542
+ ) {
1543
+ continue;
1544
+ }
1545
+
1546
+ this.inputs.push(
1547
+ CellInput.from({
1548
+ previousOutput: cell.outPoint,
1549
+ outputData: cell.outputData,
1550
+ cellOutput: cell.cellOutput,
1551
+ }),
1552
+ );
1553
+ return 1;
1554
+ }
1555
+
1556
+ throw new Error(`Insufficient CKB, need at least one new cell`);
1557
+ }
1558
+
1559
+ async completeInputsAtLeastOne(
1560
+ from: Signer,
1561
+ filter?: ClientCollectableSearchKeyFilterLike,
1562
+ ): Promise<number> {
1563
+ if (this.inputs.length > 0) {
1564
+ return 0;
1565
+ }
1566
+
1567
+ return this.completeInputsAddOne(from, filter);
1568
+ }
1569
+
1520
1570
  estimateFee(feeRate: NumLike): Num {
1521
1571
  const txSize = this.toBytes().length + 4;
1522
1572
  return (numFrom(txSize) * numFrom(feeRate) + numFrom(1000)) / numFrom(1000);
@@ -3,4 +3,3 @@ export * from "./clientPublicMainnet.advanced.js";
3
3
  export * from "./clientPublicTestnet.advanced.js";
4
4
  export * from "./clientTypes.advanced.js";
5
5
  export * from "./jsonRpc/advanced.js";
6
- export * from "./transports/advanced.js";
@@ -1,22 +1,16 @@
1
1
  import WebSocket from "isomorphic-ws";
2
- import { ClientCache } from "./cache/index.js";
3
2
  import { MAINNET_SCRIPTS } from "./clientPublicMainnet.advanced.js";
4
3
  import { KnownScript, ScriptInfo, ScriptInfoLike } from "./clientTypes.js";
5
- import { ClientJsonRpc } from "./jsonRpc/index.js";
6
- import { Transport } from "./transports/advanced.js";
4
+ import { ClientJsonRpc, ClientJsonRpcConfig } from "./jsonRpc/index.js";
7
5
 
8
6
  /**
9
7
  * @public
10
8
  */
11
9
  export class ClientPublicMainnet extends ClientJsonRpc {
12
10
  constructor(
13
- private readonly config?: {
11
+ private readonly config?: ClientJsonRpcConfig & {
14
12
  url?: string;
15
- timeout?: number;
16
- maxConcurrent?: number;
17
- transport?: Transport;
18
13
  scripts?: Record<KnownScript, ScriptInfoLike | undefined>;
19
- cache?: ClientCache;
20
14
  },
21
15
  ) {
22
16
  super(
@@ -1,22 +1,16 @@
1
1
  import WebSocket from "isomorphic-ws";
2
- import { ClientCache } from "./cache/index.js";
3
2
  import { TESTNET_SCRIPTS } from "./clientPublicTestnet.advanced.js";
4
3
  import { KnownScript, ScriptInfo, ScriptInfoLike } from "./clientTypes.js";
5
- import { ClientJsonRpc } from "./jsonRpc/index.js";
6
- import { Transport } from "./transports/advanced.js";
4
+ import { ClientJsonRpc, ClientJsonRpcConfig } from "./jsonRpc/index.js";
7
5
 
8
6
  /**
9
7
  * @public
10
8
  */
11
9
  export class ClientPublicTestnet extends ClientJsonRpc {
12
10
  constructor(
13
- private readonly config?: {
11
+ private readonly config?: ClientJsonRpcConfig & {
14
12
  url?: string;
15
- timeout?: number;
16
- maxConcurrent?: number;
17
- transport?: Transport;
18
13
  scripts?: Record<KnownScript, ScriptInfoLike | undefined>;
19
- cache?: ClientCache;
20
14
  },
21
15
  ) {
22
16
  super(