@ckb-ccc/core 1.5.0 → 1.6.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.
- package/CHANGELOG.md +18 -0
- package/dist/ckb/transaction.d.ts +57 -4
- package/dist/ckb/transaction.d.ts.map +1 -1
- package/dist/ckb/transaction.js +83 -26
- package/dist/client/cache/cache.d.ts +67 -11
- package/dist/client/cache/cache.d.ts.map +1 -1
- package/dist/client/cache/cache.js +94 -9
- package/dist/client/cache/memory.advanced.d.ts +2 -2
- package/dist/client/cache/memory.advanced.d.ts.map +1 -1
- package/dist/client/cache/memory.advanced.js +19 -7
- package/dist/client/cache/memory.d.ts +24 -7
- package/dist/client/cache/memory.d.ts.map +1 -1
- package/dist/client/cache/memory.js +76 -18
- package/dist/client/client.d.ts +27 -6
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +113 -22
- package/dist/client/clientPublicMainnet.d.ts.map +1 -1
- package/dist/client/clientPublicMainnet.js +1 -6
- package/dist/client/clientTypes.advanced.d.ts +3 -0
- package/dist/client/clientTypes.advanced.d.ts.map +1 -1
- package/dist/client/clientTypes.advanced.js +3 -0
- package/dist/client/clientTypes.d.ts +110 -13
- package/dist/client/clientTypes.d.ts.map +1 -1
- package/dist/client/clientTypes.js +118 -4
- package/dist/client/jsonRpc/client.d.ts +4 -4
- package/dist/client/jsonRpc/client.d.ts.map +1 -1
- package/dist/client/jsonRpc/client.js +4 -4
- package/dist/client/jsonRpc/transformers.js +3 -3
- package/dist/jsonRpc/transports/webSocket.d.ts.map +1 -1
- package/dist/jsonRpc/transports/webSocket.js +7 -3
- package/dist/molecule/predefined.d.ts +10 -10
- package/dist/molecule/predefined.d.ts.map +1 -1
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +13 -1
- package/dist.commonjs/advanced.js +17 -7
- package/dist.commonjs/ckb/transaction.d.ts +57 -4
- package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
- package/dist.commonjs/ckb/transaction.js +83 -26
- package/dist.commonjs/client/cache/cache.d.ts +67 -11
- package/dist.commonjs/client/cache/cache.d.ts.map +1 -1
- package/dist.commonjs/client/cache/cache.js +94 -9
- package/dist.commonjs/client/cache/memory.advanced.d.ts +2 -2
- package/dist.commonjs/client/cache/memory.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/cache/memory.advanced.js +19 -7
- package/dist.commonjs/client/cache/memory.d.ts +24 -7
- package/dist.commonjs/client/cache/memory.d.ts.map +1 -1
- package/dist.commonjs/client/cache/memory.js +75 -17
- package/dist.commonjs/client/client.d.ts +27 -6
- package/dist.commonjs/client/client.d.ts.map +1 -1
- package/dist.commonjs/client/client.js +111 -20
- package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicMainnet.js +1 -6
- package/dist.commonjs/client/clientTypes.advanced.d.ts +3 -0
- package/dist.commonjs/client/clientTypes.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/clientTypes.advanced.js +4 -0
- package/dist.commonjs/client/clientTypes.d.ts +110 -13
- package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
- package/dist.commonjs/client/clientTypes.js +123 -4
- package/dist.commonjs/client/jsonRpc/client.d.ts +4 -4
- package/dist.commonjs/client/jsonRpc/client.d.ts.map +1 -1
- package/dist.commonjs/client/jsonRpc/client.js +4 -4
- package/dist.commonjs/client/jsonRpc/transformers.js +2 -2
- package/dist.commonjs/index.js +17 -7
- package/dist.commonjs/jsonRpc/transports/webSocket.d.ts.map +1 -1
- package/dist.commonjs/jsonRpc/transports/webSocket.js +7 -3
- package/dist.commonjs/molecule/index.js +17 -7
- package/dist.commonjs/utils/index.d.ts +4 -0
- package/dist.commonjs/utils/index.d.ts.map +1 -1
- package/dist.commonjs/utils/index.js +13 -0
- package/package.json +1 -1
- package/src/ckb/transaction.ts +112 -41
- package/src/client/cache/cache.ts +126 -13
- package/src/client/cache/memory.advanced.ts +24 -7
- package/src/client/cache/memory.ts +130 -30
- package/src/client/client.ts +170 -27
- package/src/client/clientPublicMainnet.ts +1 -6
- package/src/client/clientTypes.advanced.ts +4 -0
- package/src/client/clientTypes.ts +224 -33
- package/src/client/jsonRpc/client.ts +11 -9
- package/src/client/jsonRpc/transformers.ts +2 -2
- package/src/jsonRpc/transports/webSocket.ts +17 -13
- package/src/utils/index.ts +14 -1
|
@@ -169,11 +169,11 @@ export abstract class ClientJsonRpc extends Client {
|
|
|
169
169
|
* @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
|
|
170
170
|
* @returns Block
|
|
171
171
|
*/
|
|
172
|
-
|
|
172
|
+
getBlockByNumberNoCache = this.buildSender(
|
|
173
173
|
"get_block_by_number",
|
|
174
174
|
[(v: NumLike) => numToHex(numFrom(v))],
|
|
175
175
|
(b: JsonRpcBlock) => apply(JsonRpcTransformers.blockTo, b),
|
|
176
|
-
) as Client["
|
|
176
|
+
) as Client["getBlockByNumberNoCache"];
|
|
177
177
|
|
|
178
178
|
/**
|
|
179
179
|
* Get block by block hash
|
|
@@ -183,9 +183,11 @@ export abstract class ClientJsonRpc extends Client {
|
|
|
183
183
|
* @param withCycles - whether the return cycles of block transactions. (Optional, default false.)
|
|
184
184
|
* @returns Block
|
|
185
185
|
*/
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
186
|
+
getBlockByHashNoCache = this.buildSender(
|
|
187
|
+
"get_block",
|
|
188
|
+
[hexFrom],
|
|
189
|
+
(b: JsonRpcBlock) => apply(JsonRpcTransformers.blockTo, b),
|
|
190
|
+
) as Client["getBlockByHashNoCache"];
|
|
189
191
|
|
|
190
192
|
/**
|
|
191
193
|
* Get header by block number
|
|
@@ -194,11 +196,11 @@ export abstract class ClientJsonRpc extends Client {
|
|
|
194
196
|
* @param verbosity - result format which allows 0 and 1. (Optional, the default is 1.)
|
|
195
197
|
* @returns BlockHeader
|
|
196
198
|
*/
|
|
197
|
-
|
|
199
|
+
getHeaderByNumberNoCache = this.buildSender(
|
|
198
200
|
"get_header_by_number",
|
|
199
201
|
[(v: NumLike) => numToHex(numFrom(v))],
|
|
200
202
|
(b: JsonRpcBlockHeader) => apply(JsonRpcTransformers.blockHeaderTo, b),
|
|
201
|
-
) as Client["
|
|
203
|
+
) as Client["getHeaderByNumberNoCache"];
|
|
202
204
|
|
|
203
205
|
/**
|
|
204
206
|
* Get header by block hash
|
|
@@ -207,11 +209,11 @@ export abstract class ClientJsonRpc extends Client {
|
|
|
207
209
|
* @param verbosity - result format which allows 0 and 1. (Optional, the default is 1.)
|
|
208
210
|
* @returns BlockHeader
|
|
209
211
|
*/
|
|
210
|
-
|
|
212
|
+
getHeaderByHashNoCache = this.buildSender(
|
|
211
213
|
"get_header",
|
|
212
214
|
[hexFrom],
|
|
213
215
|
(b: JsonRpcBlockHeader) => apply(JsonRpcTransformers.blockHeaderTo, b),
|
|
214
|
-
) as Client["
|
|
216
|
+
) as Client["getHeaderByHashNoCache"];
|
|
215
217
|
|
|
216
218
|
/**
|
|
217
219
|
* Estimate cycles of a transaction.
|
|
@@ -192,7 +192,7 @@ export class JsonRpcTransformers {
|
|
|
192
192
|
return;
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
-
return {
|
|
195
|
+
return ClientTransactionResponse.from({
|
|
196
196
|
transaction: JsonRpcTransformers.transactionTo(transaction),
|
|
197
197
|
status,
|
|
198
198
|
cycles: apply(numFrom, cycles),
|
|
@@ -200,7 +200,7 @@ export class JsonRpcTransformers {
|
|
|
200
200
|
blockNumber: apply(numFrom, block_number),
|
|
201
201
|
txIndex: apply(numFrom, tx_index),
|
|
202
202
|
reason,
|
|
203
|
-
};
|
|
203
|
+
});
|
|
204
204
|
}
|
|
205
205
|
static blockHeaderTo(header: JsonRpcBlockHeader): ClientBlockHeader {
|
|
206
206
|
const dao = bytesFrom(header.dao);
|
|
@@ -87,24 +87,28 @@ export class TransportWebSocket implements Transport {
|
|
|
87
87
|
reject,
|
|
88
88
|
setTimeout(() => {
|
|
89
89
|
this.ongoing.delete(data.id);
|
|
90
|
-
void socket
|
|
90
|
+
void socket
|
|
91
|
+
.then((socket) => socket.close())
|
|
92
|
+
.catch((err) => reject(err));
|
|
91
93
|
reject(new Error("Request timeout"));
|
|
92
94
|
}, this.timeout),
|
|
93
95
|
];
|
|
94
96
|
this.ongoing.set(data.id, req);
|
|
95
97
|
|
|
96
|
-
void socket
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
98
|
+
void socket
|
|
99
|
+
.then((socket) => {
|
|
100
|
+
if (
|
|
101
|
+
socket.readyState === socket.CLOSED ||
|
|
102
|
+
socket.readyState === socket.CLOSING
|
|
103
|
+
) {
|
|
104
|
+
clearTimeout(req[2]);
|
|
105
|
+
this.ongoing.delete(data.id);
|
|
106
|
+
reject(new Error("Connection closed"));
|
|
107
|
+
} else {
|
|
108
|
+
socket.send(JSON.stringify(data));
|
|
109
|
+
}
|
|
110
|
+
})
|
|
111
|
+
.catch((err) => reject(err));
|
|
108
112
|
});
|
|
109
113
|
}
|
|
110
114
|
}
|
package/src/utils/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NumLike, numFrom } from "../num/index.js";
|
|
1
|
+
import { NumLike, numFrom, numToHex } from "../num/index.js";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* A type safe way to apply a transformer on a value if it's not empty.
|
|
@@ -183,3 +183,16 @@ export type Constructor<T> = {
|
|
|
183
183
|
export function isWebview(userAgent: string): boolean {
|
|
184
184
|
return /webview|wv|ip((?!.*Safari)|(?=.*like Safari))/i.test(userAgent);
|
|
185
185
|
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* @public
|
|
189
|
+
*/
|
|
190
|
+
export function stringify(val: unknown) {
|
|
191
|
+
return JSON.stringify(val, (_, value) => {
|
|
192
|
+
if (typeof value === "bigint") {
|
|
193
|
+
return numToHex(value);
|
|
194
|
+
}
|
|
195
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
196
|
+
return value;
|
|
197
|
+
});
|
|
198
|
+
}
|