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

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 (208) hide show
  1. package/dist/address/address.advanced.d.ts +5 -0
  2. package/dist/address/address.advanced.d.ts.map +1 -0
  3. package/dist/address/address.advanced.js +68 -0
  4. package/dist/address/advanced.d.ts +7 -9
  5. package/dist/address/advanced.d.ts.map +1 -1
  6. package/dist/address/advanced.js +50 -38
  7. package/dist/address/index.d.ts +20 -5
  8. package/dist/address/index.d.ts.map +1 -1
  9. package/dist/address/index.js +43 -32
  10. package/dist/advanced.d.ts +3 -0
  11. package/dist/advanced.d.ts.map +1 -0
  12. package/dist/{types/index.js → advanced.js} +3 -9
  13. package/dist/advancedBarrel.d.ts +4 -0
  14. package/dist/advancedBarrel.d.ts.map +1 -0
  15. package/dist/advancedBarrel.js +19 -0
  16. package/dist/barrel.d.ts +3 -2
  17. package/dist/barrel.d.ts.map +1 -1
  18. package/dist/barrel.js +3 -2
  19. package/dist/bytes.d.ts +15 -0
  20. package/dist/bytes.d.ts.map +1 -0
  21. package/dist/bytes.js +114 -0
  22. package/dist/ckb/advanced.d.ts +3 -0
  23. package/dist/ckb/advanced.d.ts.map +1 -0
  24. package/dist/ckb/advanced.js +18 -0
  25. package/dist/ckb/hasher.advanced.d.ts +2 -0
  26. package/dist/ckb/hasher.advanced.d.ts.map +1 -0
  27. package/dist/ckb/hasher.advanced.js +4 -0
  28. package/dist/ckb/hasher.d.ts +10 -0
  29. package/dist/ckb/hasher.d.ts.map +1 -0
  30. package/dist/ckb/hasher.js +26 -0
  31. package/dist/ckb/index.d.ts +3 -1
  32. package/dist/ckb/index.d.ts.map +1 -1
  33. package/dist/ckb/index.js +3 -1
  34. package/dist/ckb/types/advanced.d.ts +4 -0
  35. package/dist/ckb/types/advanced.d.ts.map +1 -0
  36. package/dist/ckb/types/advanced.js +32 -0
  37. package/dist/ckb/types/index.d.ts +3 -0
  38. package/dist/ckb/types/index.d.ts.map +1 -0
  39. package/dist/{codec → ckb/types}/index.js +1 -2
  40. package/dist/ckb/types/molecule.advanced/generated.d.ts +355 -0
  41. package/dist/ckb/types/molecule.advanced/generated.d.ts.map +1 -0
  42. package/dist/ckb/types/molecule.advanced/generated.js +1255 -0
  43. package/dist/ckb/types/molecule.advanced/index.d.ts +2 -0
  44. package/dist/ckb/types/molecule.advanced/index.d.ts.map +1 -0
  45. package/dist/ckb/types/molecule.advanced/index.js +17 -0
  46. package/dist/ckb/types/script.advanced.d.ts +4 -0
  47. package/dist/ckb/types/script.advanced.d.ts.map +1 -0
  48. package/dist/{types/ckb.advanced.js → ckb/types/script.advanced.js} +3 -3
  49. package/dist/ckb/types/script.d.ts +26 -0
  50. package/dist/ckb/types/script.d.ts.map +1 -0
  51. package/dist/ckb/types/script.js +75 -0
  52. package/dist/ckb/types/transaction.advanced.d.ts +4 -0
  53. package/dist/ckb/types/transaction.advanced.d.ts.map +1 -0
  54. package/dist/ckb/types/transaction.advanced.js +11 -0
  55. package/dist/ckb/types/transaction.d.ts +127 -0
  56. package/dist/ckb/types/transaction.d.ts.map +1 -0
  57. package/dist/ckb/types/transaction.js +266 -0
  58. package/dist/ckb/viewerCkbScript.d.ts +11 -0
  59. package/dist/ckb/viewerCkbScript.d.ts.map +1 -0
  60. package/dist/ckb/viewerCkbScript.js +18 -0
  61. package/dist/client/advanced.d.ts +3 -0
  62. package/dist/client/advanced.d.ts.map +1 -0
  63. package/dist/client/advanced.js +18 -0
  64. package/dist/client/client.d.ts +7 -4
  65. package/dist/client/client.d.ts.map +1 -1
  66. package/dist/client/client.js +1 -4
  67. package/dist/client/clientPublicMainnet.advanced.d.ts +1 -1
  68. package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  69. package/dist/client/clientPublicMainnet.d.ts +5 -3
  70. package/dist/client/clientPublicMainnet.d.ts.map +1 -1
  71. package/dist/client/clientPublicMainnet.js +6 -3
  72. package/dist/client/clientPublicTestnet.advanced.d.ts +1 -1
  73. package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  74. package/dist/client/clientPublicTestnet.d.ts +5 -3
  75. package/dist/client/clientPublicTestnet.d.ts.map +1 -1
  76. package/dist/client/clientPublicTestnet.js +6 -3
  77. package/dist/client/clientTypes.d.ts +2 -0
  78. package/dist/client/clientTypes.d.ts.map +1 -0
  79. package/dist/client/index.d.ts +1 -4
  80. package/dist/client/index.d.ts.map +1 -1
  81. package/dist/client/index.js +1 -19
  82. package/dist/client/jsonRpc/advanced.d.ts +88 -0
  83. package/dist/client/jsonRpc/advanced.d.ts.map +1 -0
  84. package/dist/client/jsonRpc/advanced.js +69 -0
  85. package/dist/client/jsonRpc/index.d.ts +14 -0
  86. package/dist/client/jsonRpc/index.d.ts.map +1 -0
  87. package/dist/client/jsonRpc/index.js +64 -0
  88. package/dist/fixedPoint.d.ts +9 -0
  89. package/dist/fixedPoint.d.ts.map +1 -0
  90. package/dist/fixedPoint.js +30 -0
  91. package/dist/primitive.d.ts +5 -0
  92. package/dist/primitive.d.ts.map +1 -0
  93. package/dist/signer/helpers.d.ts +7 -0
  94. package/dist/signer/helpers.d.ts.map +1 -0
  95. package/dist/signer/helpers.js +35 -0
  96. package/dist/signer/index.d.ts +3 -0
  97. package/dist/signer/index.d.ts.map +1 -0
  98. package/dist/signer/index.js +18 -0
  99. package/dist/signer/signer.d.ts +11 -0
  100. package/dist/signer/signer.d.ts.map +1 -0
  101. package/dist/signer/signer.js +13 -0
  102. package/dist/viewer.d.ts +8 -5
  103. package/dist/viewer.d.ts.map +1 -1
  104. package/dist/viewer.js +13 -0
  105. package/package.json +13 -5
  106. package/src/address/address.advanced.ts +88 -0
  107. package/src/address/advanced.ts +30 -45
  108. package/src/address/index.ts +70 -5
  109. package/src/advanced.ts +2 -0
  110. package/src/advancedBarrel.ts +3 -0
  111. package/src/barrel.ts +3 -2
  112. package/src/bytes.ts +127 -0
  113. package/src/ckb/advanced.ts +2 -0
  114. package/src/ckb/hasher.advanced.ts +1 -0
  115. package/src/ckb/hasher.ts +30 -0
  116. package/src/ckb/index.ts +3 -1
  117. package/src/ckb/types/advanced.ts +3 -0
  118. package/src/ckb/types/index.ts +2 -0
  119. package/src/ckb/types/molecule.advanced/blockchain.mol +118 -0
  120. package/src/ckb/types/molecule.advanced/generated.d.ts +433 -0
  121. package/src/ckb/types/molecule.advanced/generated.js +1376 -0
  122. package/src/ckb/types/molecule.advanced/index.ts +1 -0
  123. package/src/ckb/types/script.advanced.ts +14 -0
  124. package/src/ckb/types/script.ts +70 -0
  125. package/src/ckb/types/transaction.advanced.ts +10 -0
  126. package/src/ckb/types/transaction.ts +366 -0
  127. package/src/ckb/viewerCkbScript.ts +21 -0
  128. package/src/client/advanced.ts +2 -0
  129. package/src/client/client.ts +11 -4
  130. package/src/client/clientPublicMainnet.advanced.ts +1 -1
  131. package/src/client/clientPublicMainnet.ts +9 -4
  132. package/src/client/clientPublicTestnet.advanced.ts +1 -1
  133. package/src/client/clientPublicTestnet.ts +9 -4
  134. package/src/client/clientTypes.ts +1 -0
  135. package/src/client/index.ts +1 -7
  136. package/src/client/jsonRpc/advanced.ts +93 -0
  137. package/src/client/jsonRpc/index.ts +83 -0
  138. package/src/fixedPoint.ts +53 -0
  139. package/src/primitive.ts +8 -0
  140. package/src/signer/helpers.ts +43 -0
  141. package/src/signer/index.ts +2 -0
  142. package/src/signer/signer.ts +19 -0
  143. package/src/viewer.ts +16 -8
  144. package/dist/address/address.d.ts +0 -8
  145. package/dist/address/address.d.ts.map +0 -1
  146. package/dist/address/address.js +0 -6
  147. package/dist/address/addressKnownScript.d.ts +0 -13
  148. package/dist/address/addressKnownScript.d.ts.map +0 -1
  149. package/dist/address/addressKnownScript.js +0 -27
  150. package/dist/address/addressPlain.d.ts +0 -12
  151. package/dist/address/addressPlain.d.ts.map +0 -1
  152. package/dist/address/addressPlain.js +0 -23
  153. package/dist/address/converter.d.ts +0 -8
  154. package/dist/address/converter.d.ts.map +0 -1
  155. package/dist/address/converter.js +0 -65
  156. package/dist/bundle.d.ts +0 -9
  157. package/dist/bundle.d.ts.map +0 -1
  158. package/dist/bundle.js +0 -25
  159. package/dist/ckb/viewerCkbAddress.d.ts +0 -14
  160. package/dist/ckb/viewerCkbAddress.d.ts.map +0 -1
  161. package/dist/ckb/viewerCkbAddress.js +0 -28
  162. package/dist/codec/bytes.d.ts +0 -4
  163. package/dist/codec/bytes.d.ts.map +0 -1
  164. package/dist/codec/bytes.js +0 -29
  165. package/dist/codec/hashType.d.ts +0 -4
  166. package/dist/codec/hashType.d.ts.map +0 -1
  167. package/dist/codec/hashType.js +0 -13
  168. package/dist/codec/index.d.ts +0 -4
  169. package/dist/codec/index.d.ts.map +0 -1
  170. package/dist/codec/script.d.ts +0 -4
  171. package/dist/codec/script.d.ts.map +0 -1
  172. package/dist/codec/script.js +0 -22
  173. package/dist/signer.d.ts +0 -9
  174. package/dist/signer.d.ts.map +0 -1
  175. package/dist/signer.js +0 -12
  176. package/dist/tsconfig.tsbuildinfo +0 -1
  177. package/dist/types/cell.d.ts +0 -5
  178. package/dist/types/cell.d.ts.map +0 -1
  179. package/dist/types/cell.js +0 -8
  180. package/dist/types/ckb.advanced.d.ts +0 -4
  181. package/dist/types/ckb.advanced.d.ts.map +0 -1
  182. package/dist/types/ckb.d.ts +0 -16
  183. package/dist/types/ckb.d.ts.map +0 -1
  184. package/dist/types/ckb.js +0 -36
  185. package/dist/types/index.d.ts +0 -9
  186. package/dist/types/index.d.ts.map +0 -1
  187. package/dist/types/lumos.d.ts +0 -90
  188. package/dist/types/lumos.d.ts.map +0 -1
  189. package/dist/types/primitive.d.ts +0 -3
  190. package/dist/types/primitive.d.ts.map +0 -1
  191. package/src/address/address.ts +0 -9
  192. package/src/address/addressKnownScript.ts +0 -31
  193. package/src/address/addressPlain.ts +0 -27
  194. package/src/address/converter.ts +0 -93
  195. package/src/ckb/viewerCkbAddress.ts +0 -34
  196. package/src/codec/bytes.ts +0 -30
  197. package/src/codec/hashType.ts +0 -10
  198. package/src/codec/index.ts +0 -3
  199. package/src/codec/script.ts +0 -21
  200. package/src/signer.ts +0 -20
  201. package/src/types/cell.ts +0 -5
  202. package/src/types/ckb.advanced.ts +0 -14
  203. package/src/types/ckb.ts +0 -47
  204. package/src/types/index.ts +0 -9
  205. package/src/types/lumos.ts +0 -101
  206. package/src/types/primitive.ts +0 -2
  207. /package/dist/{types/lumos.js → client/clientTypes.js} +0 -0
  208. /package/dist/{types/primitive.js → primitive.js} +0 -0
@@ -0,0 +1,83 @@
1
+ import type { Client } from "../client";
2
+ import fetch from "cross-fetch";
3
+ import { CkbRpcMethods, JsonRpcMethod, JsonRpcPayload } from "./advanced";
4
+
5
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
6
+ export interface ClientJsonRpc extends Pick<Client, "sendTransaction"> {}
7
+
8
+ async function transform(
9
+ value: unknown,
10
+ transformer?: (i: unknown) => unknown,
11
+ ) {
12
+ if (transformer) {
13
+ return transformer(value);
14
+ }
15
+ return value;
16
+ }
17
+
18
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
19
+ export abstract class ClientJsonRpc implements Pick<Client, "sendTransaction"> {
20
+ constructor(
21
+ private readonly url: string,
22
+ private readonly timeout = 30000,
23
+ ) {
24
+ CkbRpcMethods.map((method) =>
25
+ Object.defineProperty(this, method.method, {
26
+ value: this.buildSender(method),
27
+ enumerable: true,
28
+ }),
29
+ );
30
+ }
31
+
32
+ getUrl() {
33
+ return this.url;
34
+ }
35
+
36
+ buildSender({ rpcMethod, inTransformers, outTransformer }: JsonRpcMethod) {
37
+ return async (...req: unknown[]) => {
38
+ const payload = ClientJsonRpc.buildPayload(
39
+ rpcMethod,
40
+ await Promise.all(req.map((v, i) => transform(v, inTransformers[i]))),
41
+ );
42
+
43
+ return transform(await this.send(payload), outTransformer);
44
+ };
45
+ }
46
+
47
+ async send(payload: JsonRpcPayload) {
48
+ const aborter = new AbortController();
49
+ const abortTimer = setTimeout(() => aborter.abort(), this.timeout);
50
+
51
+ const raw = await fetch(this.url, {
52
+ method: "POST",
53
+ headers: {
54
+ "content-type": "application/json",
55
+ },
56
+ body: JSON.stringify(payload),
57
+ signal: aborter.signal,
58
+ });
59
+ clearTimeout(abortTimer);
60
+
61
+ const res = (await raw.json()) as {
62
+ id: number;
63
+ error: unknown;
64
+ result: unknown;
65
+ };
66
+ if (res.id !== payload.id) {
67
+ throw new Error(`Id mismatched, got ${res.id}, expected ${payload.id}`);
68
+ }
69
+ if (res.error) {
70
+ throw res.error;
71
+ }
72
+ return res.result;
73
+ }
74
+
75
+ static buildPayload(method: string, req: unknown[]): JsonRpcPayload {
76
+ return {
77
+ id: Math.round(Math.random() * 10000),
78
+ method,
79
+ params: req,
80
+ jsonrpc: "2.0",
81
+ };
82
+ }
83
+ }
@@ -0,0 +1,53 @@
1
+ export function composeFixedPoint(
2
+ val: undefined | null,
3
+ decimals?: number,
4
+ ): null;
5
+ export function composeFixedPoint(val: bigint, decimals?: number): string;
6
+ export function composeFixedPoint(
7
+ val: bigint | undefined | null,
8
+ decimals?: number,
9
+ ): string | null;
10
+ export function composeFixedPoint(
11
+ val: bigint | undefined | null,
12
+ decimals = 8,
13
+ ): string | null {
14
+ if (val == null) {
15
+ return null;
16
+ }
17
+ const str = val.toString();
18
+ const l = str.length <= decimals ? "0" : str.slice(0, -decimals);
19
+ const r = str.slice(-decimals).padStart(decimals, "0").replace(/0*$/, "");
20
+ if (r === "") {
21
+ return l;
22
+ }
23
+
24
+ return `${l}.${r}`;
25
+ }
26
+
27
+ export function parseFixedPoint(ori: undefined | null, decimals?: number): null;
28
+ export function parseFixedPoint(
29
+ ori: string | number,
30
+ decimals?: number,
31
+ ): bigint;
32
+ export function parseFixedPoint(
33
+ ori: string | number | undefined | null,
34
+ decimals?: number,
35
+ ): bigint | null;
36
+ export function parseFixedPoint(
37
+ ori: string | number | undefined | null,
38
+ decimals = 8,
39
+ ): bigint | null {
40
+ if (ori == null) {
41
+ return null;
42
+ }
43
+ const [l, r] = ori.toString().split(".");
44
+ const lVal = BigInt(l.padEnd(l.length + decimals, "0"));
45
+ if (r === undefined) {
46
+ return lVal;
47
+ }
48
+
49
+ return lVal + BigInt(r.slice(0, decimals).padEnd(decimals, "0"));
50
+ }
51
+
52
+ export const Zero = 0n;
53
+ export const One = parseFixedPoint("1");
@@ -0,0 +1,8 @@
1
+ export type Hex = `0x${string}`;
2
+ export type BytesLike =
3
+ | Hex
4
+ | Uint8Array
5
+ | ArrayBuffer
6
+ | number[];
7
+ export type HexLike = BytesLike | number | string;
8
+ export type NumberLike = string | Hex | number | bigint;
@@ -0,0 +1,43 @@
1
+ import { Hasher, Script, Transaction } from "../ckb";
2
+ import { Hex } from "../primitive";
3
+
4
+ export async function getSignHashInfo(
5
+ tx: Transaction,
6
+ script: Script,
7
+ ): Promise<{ message: Hex; position: number } | undefined> {
8
+ let position = -1;
9
+ const hasher = new Hasher();
10
+ hasher.update(Transaction.hashRaw(tx));
11
+
12
+ tx.witnesses.forEach((witness, i) => {
13
+ const input = tx.inputs[i];
14
+ if (input) {
15
+ if (!input.cellOutput?.lock) {
16
+ throw Error("Incomplete inputs info");
17
+ }
18
+
19
+ if (!Script.eq(input.cellOutput?.lock, script)) {
20
+ return;
21
+ }
22
+
23
+ if (position === -1) {
24
+ position = i;
25
+ }
26
+ }
27
+
28
+ if (position === -1) {
29
+ return undefined;
30
+ }
31
+
32
+ Transaction.hashWitnessToHasher(witness, hasher);
33
+ });
34
+
35
+ if (position === -1) {
36
+ return undefined;
37
+ }
38
+
39
+ return {
40
+ message: hasher.digest(),
41
+ position,
42
+ };
43
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./helpers";
2
+ export * from "./signer";
@@ -0,0 +1,19 @@
1
+ import { Viewer } from "../viewer";
2
+ import { BytesLike, Hex } from "../primitive";
3
+ import { Transaction } from "../ckb";
4
+
5
+ export abstract class Signer extends Viewer {
6
+ abstract connect(): Promise<void>;
7
+
8
+ abstract signMessage(message: string | BytesLike): Promise<Hex>;
9
+
10
+ async sendTransaction(tx: Transaction): Promise<Hex> {
11
+ return this.client.sendTransaction(await this.signTransaction(tx));
12
+ }
13
+
14
+ async signTransaction(tx: Transaction): Promise<Transaction> {
15
+ return this.signOnlyTransaction(tx);
16
+ }
17
+
18
+ abstract signOnlyTransaction(tx: Transaction): Promise<Transaction>;
19
+ }
package/src/viewer.ts CHANGED
@@ -1,14 +1,22 @@
1
- import { TransactionSkeletonType } from "./types/lumos";
1
+ import { Address } from "./address";
2
2
  import { Client } from "./client";
3
3
 
4
4
  export abstract class Viewer {
5
- abstract getClient(): Promise<Client>;
5
+ constructor(public readonly client: Client) {}
6
6
 
7
- abstract getRecommendedAddress(preference?: unknown): Promise<string>;
8
- abstract getAddresses(): Promise<string[]>;
7
+ abstract getInternalAddress(): Promise<string>;
9
8
 
10
- // Will be deprecated in the future
11
- abstract completeLumosTransaction(
12
- tx: TransactionSkeletonType,
13
- ): Promise<TransactionSkeletonType>;
9
+ abstract getAddressObjs(): Promise<Address[]>;
10
+ async getRecommendedAddressObj(_preference?: unknown): Promise<Address> {
11
+ return (await this.getAddressObjs())[0];
12
+ }
13
+
14
+ async getRecommendedAddress(preference?: unknown): Promise<string> {
15
+ return Address.toString(await this.getRecommendedAddressObj(preference));
16
+ }
17
+ async getAddresses(): Promise<string[]> {
18
+ return this.getAddressObjs().then((addresses) =>
19
+ addresses.map((address) => Address.toString(address)),
20
+ );
21
+ }
14
22
  }
@@ -1,8 +0,0 @@
1
- import { Client } from "../client";
2
- import { Script } from "../types";
3
- export declare abstract class Address {
4
- abstract getClient(): Promise<Client>;
5
- abstract getAddress(): Promise<string>;
6
- abstract getScript(): Promise<Script>;
7
- }
8
- //# sourceMappingURL=address.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,8BAAsB,OAAO;IAC3B,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAErC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IACtC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;CACtC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Address = void 0;
4
- class Address {
5
- }
6
- exports.Address = Address;
@@ -1,13 +0,0 @@
1
- import { Client, KnownScript } from "../client";
2
- import { Script } from "../types";
3
- import { Address } from "./address";
4
- export declare class AddressKnownScript extends Address {
5
- private readonly script;
6
- private readonly args;
7
- private readonly client;
8
- constructor(script: KnownScript, args: Script["args"], client: Client);
9
- getClient(): Promise<Client>;
10
- getAddress(): Promise<string>;
11
- getScript(): Promise<Script>;
12
- }
13
- //# sourceMappingURL=addressKnownScript.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addressKnownScript.d.ts","sourceRoot":"","sources":["../../src/address/addressKnownScript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,qBAAa,kBAAmB,SAAQ,OAAO;IAE3C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EACpB,MAAM,EAAE,MAAM;IAK3B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAM7B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;CAMnC"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AddressKnownScript = void 0;
4
- const address_1 = require("./address");
5
- const converter_1 = require("./converter");
6
- class AddressKnownScript extends address_1.Address {
7
- constructor(script, args, client) {
8
- super();
9
- this.script = script;
10
- this.args = args;
11
- this.client = client;
12
- }
13
- async getClient() {
14
- return this.client;
15
- }
16
- async getAddress() {
17
- const prefix = await (await this.getClient()).getAddressPrefix();
18
- return (0, converter_1.encodeScriptToAddress)(prefix, await this.getScript());
19
- }
20
- async getScript() {
21
- return {
22
- ...(await this.client.getKnownScript(this.script)),
23
- args: this.args,
24
- };
25
- }
26
- }
27
- exports.AddressKnownScript = AddressKnownScript;
@@ -1,12 +0,0 @@
1
- import { Client } from "../client";
2
- import { Script } from "../types";
3
- import { Address } from "./address";
4
- export declare class AddressPlain extends Address {
5
- private readonly script;
6
- private readonly client;
7
- constructor(script: Script, client: Client);
8
- getClient(): Promise<Client>;
9
- getAddress(): Promise<string>;
10
- getScript(): Promise<Script>;
11
- }
12
- //# sourceMappingURL=addressPlain.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addressPlain.d.ts","sourceRoot":"","sources":["../../src/address/addressPlain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,qBAAa,YAAa,SAAQ,OAAO;IAErC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;IAK3B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAM7B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;CAGnC"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AddressPlain = void 0;
4
- const address_1 = require("./address");
5
- const converter_1 = require("./converter");
6
- class AddressPlain extends address_1.Address {
7
- constructor(script, client) {
8
- super();
9
- this.script = script;
10
- this.client = client;
11
- }
12
- async getClient() {
13
- return this.client;
14
- }
15
- async getAddress() {
16
- const prefix = await (await this.getClient()).getAddressPrefix();
17
- return (0, converter_1.encodeScriptToAddress)(prefix, this.script);
18
- }
19
- async getScript() {
20
- return this.script;
21
- }
22
- }
23
- exports.AddressPlain = AddressPlain;
@@ -1,8 +0,0 @@
1
- import { Client } from "../client";
2
- import { Script } from "../types";
3
- import { AddressPlain } from "./addressPlain";
4
- import { Address } from "./address";
5
- export declare function decodeAddressFromString(address: string, getClient?: (prefix: string) => Client | undefined): Address;
6
- export declare function decodeAddressFromScript(script: Script, client: Client): AddressPlain;
7
- export declare function encodeScriptToAddress(prefix: string, script: Script): string;
8
- //# sourceMappingURL=converter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/address/converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAe,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GACjD,OAAO,CA8DT;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,YAAY,CAEd;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAInE"}
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeScriptToAddress = exports.decodeAddressFromScript = exports.decodeAddressFromString = void 0;
4
- const client_1 = require("../client");
5
- const codec_1 = require("../codec");
6
- const addressPlain_1 = require("./addressPlain");
7
- const advanced_1 = require("./advanced");
8
- const addressKnownScript_1 = require("./addressKnownScript");
9
- const bech32_1 = require("bech32");
10
- function decodeAddressFromString(address, getClient) {
11
- const { prefix, format, body } = (0, advanced_1.parseAddress)(address);
12
- const client = getClient?.(prefix) ?? (0, advanced_1.getClientFromAddressPrefix)(prefix);
13
- if (!client) {
14
- throw new Error(`Unknown address prefix ${prefix}`);
15
- }
16
- if (format === advanced_1.AddressFormat.Full) {
17
- if (body.length < 32 + 1) {
18
- throw new Error(`Invalid address without enough payload ${address}`);
19
- }
20
- return new addressPlain_1.AddressPlain((0, codec_1.decodeScript)(body), client);
21
- }
22
- if (format === advanced_1.AddressFormat.FullData) {
23
- if (body.length < 32) {
24
- throw new Error(`Invalid address without enough payload ${address}`);
25
- }
26
- return new addressPlain_1.AddressPlain({
27
- codeHash: (0, codec_1.toHex)(body.slice(0, 32)),
28
- hashType: "data",
29
- args: (0, codec_1.toHex)(body.slice(32)),
30
- }, client);
31
- }
32
- if (format === advanced_1.AddressFormat.FullType) {
33
- if (body.length < 32) {
34
- throw new Error(`Invalid address without enough payload ${address}`);
35
- }
36
- return new addressPlain_1.AddressPlain({
37
- codeHash: (0, codec_1.toHex)(body.slice(0, 32)),
38
- hashType: "type",
39
- args: (0, codec_1.toHex)(body.slice(32)),
40
- }, client);
41
- }
42
- // format === AddressFormat.Short
43
- if (body.length !== 21) {
44
- throw new Error(`Invalid address without enough payload ${address}`);
45
- }
46
- const script = [
47
- client_1.KnownScript.Secp256k1Blake160,
48
- client_1.KnownScript.Secp256k1Multisig,
49
- client_1.KnownScript.AnyoneCanPay,
50
- ][body[0]];
51
- if (script === undefined) {
52
- throw new Error(`Invalid short format address with unknown script ${address}`);
53
- }
54
- return new addressKnownScript_1.AddressKnownScript(script, (0, codec_1.toHex)(body.slice(1)), client);
55
- }
56
- exports.decodeAddressFromString = decodeAddressFromString;
57
- function decodeAddressFromScript(script, client) {
58
- return new addressPlain_1.AddressPlain(script, client);
59
- }
60
- exports.decodeAddressFromScript = decodeAddressFromScript;
61
- function encodeScriptToAddress(prefix, script) {
62
- const data = [advanced_1.AddressFormat.Full, ...(0, codec_1.encodeScript)(script)];
63
- return bech32_1.bech32m.encode(prefix, bech32_1.bech32m.toWords(data), advanced_1.BECH32_LIMIT);
64
- }
65
- exports.encodeScriptToAddress = encodeScriptToAddress;
package/dist/bundle.d.ts DELETED
@@ -1,9 +0,0 @@
1
- export * from "./address";
2
- export * from "./ckb";
3
- export * from "./client";
4
- export * from "./codec";
5
- export * from "./types";
6
- export * from "./signer";
7
- export * from "./viewer";
8
- export declare const test = "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
9
- //# sourceMappingURL=bundle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,eAAO,MAAM,IAAI,qgCACm/B,CAAC"}
package/dist/bundle.js DELETED
@@ -1,25 +0,0 @@
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
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.test = void 0;
18
- __exportStar(require("./address"), exports);
19
- __exportStar(require("./ckb"), exports);
20
- __exportStar(require("./client"), exports);
21
- __exportStar(require("./codec"), exports);
22
- __exportStar(require("./types"), exports);
23
- __exportStar(require("./signer"), exports);
24
- __exportStar(require("./viewer"), exports);
25
- exports.test = "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
@@ -1,14 +0,0 @@
1
- import { Client } from "../client";
2
- import { Script } from "../types";
3
- import { Viewer } from "../viewer";
4
- import { TransactionSkeletonType } from "../types/lumos";
5
- export declare class ViewerCkbAddress extends Viewer {
6
- private readonly script;
7
- private readonly client;
8
- constructor(script: Script, client: Client);
9
- getClient(): Promise<Client>;
10
- getRecommendedAddress(): Promise<string>;
11
- getAddresses(): Promise<string[]>;
12
- completeLumosTransaction(tx: TransactionSkeletonType): Promise<TransactionSkeletonType>;
13
- }
14
- //# sourceMappingURL=viewerCkbAddress.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"viewerCkbAddress.d.ts","sourceRoot":"","sources":["../../src/ckb/viewerCkbAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,MAAM;IAExC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;IAK3B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAGxC,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAOjC,wBAAwB,CAC5B,EAAE,EAAE,uBAAuB,GAC1B,OAAO,CAAC,uBAAuB,CAAC;CAGpC"}
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ViewerCkbAddress = void 0;
4
- const address_1 = require("../address");
5
- const viewer_1 = require("../viewer");
6
- class ViewerCkbAddress extends viewer_1.Viewer {
7
- constructor(script, client) {
8
- super();
9
- this.script = script;
10
- this.client = client;
11
- }
12
- async getClient() {
13
- return this.client;
14
- }
15
- async getRecommendedAddress() {
16
- return (await this.getAddresses())[0];
17
- }
18
- async getAddresses() {
19
- return [
20
- (0, address_1.encodeScriptToAddress)(await this.client.getAddressPrefix(), this.script),
21
- ];
22
- }
23
- // Will be deprecated in the future
24
- async completeLumosTransaction(tx) {
25
- return tx;
26
- }
27
- }
28
- exports.ViewerCkbAddress = ViewerCkbAddress;
@@ -1,4 +0,0 @@
1
- import { BytesLike, HexString } from "../types";
2
- export declare function toBytes(bytes: BytesLike | string): Uint8Array;
3
- export declare function toHex(bytes: BytesLike | string): HexString;
4
- //# sourceMappingURL=bytes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/codec/bytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGhD,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,CAsB7D;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAE1D"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toHex = exports.toBytes = void 0;
4
- const buffer_1 = require("buffer");
5
- function toBytes(bytes) {
6
- if (bytes instanceof Uint8Array) {
7
- return bytes;
8
- }
9
- if (Array.isArray(bytes)) {
10
- if (bytes.some((v) => v < 0 || 0xff < v)) {
11
- throw new Error(`Invalid bytes ${bytes}`);
12
- }
13
- return new Uint8Array(bytes);
14
- }
15
- if (bytes.length % 2 !== 0) {
16
- throw new Error(`Invalid bytes with odd length ${bytes}`);
17
- }
18
- const strData = bytes.startsWith("0x") ? bytes.slice(2) : bytes;
19
- const data = buffer_1.Buffer.from(strData, "hex");
20
- if (data.length * 2 !== strData.length) {
21
- throw new Error(`Invalid bytes ${bytes}`);
22
- }
23
- return data;
24
- }
25
- exports.toBytes = toBytes;
26
- function toHex(bytes) {
27
- return `0x${new buffer_1.Buffer(toBytes(bytes)).toString("hex")}`;
28
- }
29
- exports.toHex = toHex;
@@ -1,4 +0,0 @@
1
- import { BytesLike, HashType } from "../types";
2
- export declare function encodeHashType(hashType: HashType): Uint8Array;
3
- export declare function decodeHashType(bytes: BytesLike): HashType;
4
- //# sourceMappingURL=hashType.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hashType.d.ts","sourceRoot":"","sources":["../../src/codec/hashType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAiC,MAAM,UAAU,CAAC;AAG9E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAE7D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAEzD"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decodeHashType = exports.encodeHashType = void 0;
4
- const types_1 = require("../types");
5
- const bytes_1 = require("./bytes");
6
- function encodeHashType(hashType) {
7
- return (0, bytes_1.toBytes)([(0, types_1.parseHashType)(hashType)]);
8
- }
9
- exports.encodeHashType = encodeHashType;
10
- function decodeHashType(bytes) {
11
- return (0, types_1.formatHashType)((0, bytes_1.toBytes)(bytes)[0]);
12
- }
13
- exports.decodeHashType = decodeHashType;
@@ -1,4 +0,0 @@
1
- export * from "./bytes";
2
- export * from "./hashType";
3
- export * from "./script";
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codec/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
@@ -1,4 +0,0 @@
1
- import { BytesLike, Script } from "../types";
2
- export declare function encodeScript(script: Script): Uint8Array;
3
- export declare function decodeScript(bytes: BytesLike): Script;
4
- //# sourceMappingURL=script.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../src/codec/script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAI7C,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAMvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAQrD"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decodeScript = exports.encodeScript = void 0;
4
- const bytes_1 = require("./bytes");
5
- const hashType_1 = require("./hashType");
6
- function encodeScript(script) {
7
- return (0, bytes_1.toBytes)([
8
- ...(0, bytes_1.toBytes)(script.codeHash),
9
- ...(0, hashType_1.encodeHashType)(script.hashType),
10
- ...(0, bytes_1.toBytes)(script.args),
11
- ]);
12
- }
13
- exports.encodeScript = encodeScript;
14
- function decodeScript(bytes) {
15
- const formattedBytes = (0, bytes_1.toBytes)(bytes);
16
- return {
17
- codeHash: (0, bytes_1.toHex)(formattedBytes.slice(0, 32)),
18
- hashType: (0, hashType_1.decodeHashType)(formattedBytes.slice(32, 33)),
19
- args: (0, bytes_1.toHex)(formattedBytes.slice(33)),
20
- };
21
- }
22
- exports.decodeScript = decodeScript;
package/dist/signer.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { TransactionSkeletonType } from "./types/lumos";
2
- import { Viewer } from "./viewer";
3
- import { BytesLike, HexString } from "./types";
4
- export declare abstract class Signer extends Viewer {
5
- abstract signMessage(message: string | BytesLike): Promise<HexString>;
6
- signLumosTransaction(tx: TransactionSkeletonType): Promise<TransactionSkeletonType>;
7
- abstract signOnlyLumosTransaction(tx: TransactionSkeletonType): Promise<TransactionSkeletonType>;
8
- }
9
- //# sourceMappingURL=signer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE/C,8BAAsB,MAAO,SAAQ,MAAM;IACzC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAGrE,oBAAoB,CAClB,EAAE,EAAE,uBAAuB,GAC1B,OAAO,CAAC,uBAAuB,CAAC;IAMnC,QAAQ,CAAC,wBAAwB,CAC/B,EAAE,EAAE,uBAAuB,GAC1B,OAAO,CAAC,uBAAuB,CAAC;CACpC"}