@ckb-ccc/core 0.0.5-alpha.8 → 0.0.6-alpha.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 (124) hide show
  1. package/dist/ckb/transaction.d.ts +17 -6
  2. package/dist/ckb/transaction.d.ts.map +1 -1
  3. package/dist/ckb/transaction.js +39 -15
  4. package/dist/client/client.d.ts +7 -6
  5. package/dist/client/client.d.ts.map +1 -1
  6. package/dist/client/client.js +9 -7
  7. package/dist/client/clientPublicMainnet.advanced.d.ts +1 -1
  8. package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  9. package/dist/client/clientPublicMainnet.advanced.js +1 -0
  10. package/dist/client/clientPublicMainnet.d.ts.map +1 -1
  11. package/dist/client/clientPublicMainnet.js +5 -1
  12. package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  13. package/dist/client/clientPublicTestnet.advanced.js +4 -0
  14. package/dist/signer/btc/signerBtc.d.ts.map +1 -1
  15. package/dist/signer/btc/signerBtc.js +4 -2
  16. package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts +0 -6
  17. package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -1
  18. package/dist/signer/btc/signerBtcPublicKeyReadonly.js +0 -8
  19. package/dist/signer/btc/verify.d.ts.map +1 -1
  20. package/dist/signer/btc/verify.js +5 -2
  21. package/dist/signer/ckb/signerCkbScriptReadonly.d.ts +0 -6
  22. package/dist/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -1
  23. package/dist/signer/ckb/signerCkbScriptReadonly.js +0 -8
  24. package/dist/signer/dummy/alwaysError.d.ts +0 -1
  25. package/dist/signer/dummy/alwaysError.d.ts.map +1 -1
  26. package/dist/signer/dummy/alwaysError.js +0 -3
  27. package/dist/signer/dummy/openLink.d.ts +0 -1
  28. package/dist/signer/dummy/openLink.d.ts.map +1 -1
  29. package/dist/signer/dummy/openLink.js +0 -3
  30. package/dist/signer/evm/signerEvm.d.ts.map +1 -1
  31. package/dist/signer/evm/signerEvm.js +3 -3
  32. package/dist/signer/evm/signerEvmAddressReadonly.d.ts +0 -6
  33. package/dist/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -1
  34. package/dist/signer/evm/signerEvmAddressReadonly.js +0 -8
  35. package/dist/signer/index.d.ts +1 -0
  36. package/dist/signer/index.d.ts.map +1 -1
  37. package/dist/signer/index.js +1 -0
  38. package/dist/signer/nostr/index.d.ts +2 -0
  39. package/dist/signer/nostr/index.d.ts.map +1 -0
  40. package/dist/signer/nostr/index.js +1 -0
  41. package/dist/signer/nostr/signerNostr.d.ts +66 -0
  42. package/dist/signer/nostr/signerNostr.d.ts.map +1 -0
  43. package/dist/signer/nostr/signerNostr.js +84 -0
  44. package/dist/signer/nostr/verify.d.ts +5 -0
  45. package/dist/signer/nostr/verify.d.ts.map +1 -0
  46. package/dist/signer/nostr/verify.js +48 -0
  47. package/dist/signer/signer/index.d.ts +7 -12
  48. package/dist/signer/signer/index.d.ts.map +1 -1
  49. package/dist/signer/signer/index.js +11 -4
  50. package/dist/utils/index.d.ts +59 -0
  51. package/dist/utils/index.d.ts.map +1 -1
  52. package/dist/utils/index.js +17 -0
  53. package/dist.commonjs/ckb/transaction.d.ts +17 -6
  54. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  55. package/dist.commonjs/ckb/transaction.js +39 -15
  56. package/dist.commonjs/client/client.d.ts +7 -6
  57. package/dist.commonjs/client/client.d.ts.map +1 -1
  58. package/dist.commonjs/client/client.js +9 -7
  59. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts +1 -1
  60. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  61. package/dist.commonjs/client/clientPublicMainnet.advanced.js +1 -0
  62. package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
  63. package/dist.commonjs/client/clientPublicMainnet.js +5 -1
  64. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -1
  65. package/dist.commonjs/client/clientPublicTestnet.advanced.js +4 -0
  66. package/dist.commonjs/signer/btc/signerBtc.d.ts.map +1 -1
  67. package/dist.commonjs/signer/btc/signerBtc.js +4 -2
  68. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts +0 -6
  69. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -1
  70. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.js +0 -8
  71. package/dist.commonjs/signer/btc/verify.d.ts.map +1 -1
  72. package/dist.commonjs/signer/btc/verify.js +5 -2
  73. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts +0 -6
  74. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -1
  75. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.js +0 -8
  76. package/dist.commonjs/signer/dummy/alwaysError.d.ts +0 -1
  77. package/dist.commonjs/signer/dummy/alwaysError.d.ts.map +1 -1
  78. package/dist.commonjs/signer/dummy/alwaysError.js +0 -3
  79. package/dist.commonjs/signer/dummy/openLink.d.ts +0 -1
  80. package/dist.commonjs/signer/dummy/openLink.d.ts.map +1 -1
  81. package/dist.commonjs/signer/dummy/openLink.js +0 -3
  82. package/dist.commonjs/signer/evm/signerEvm.d.ts.map +1 -1
  83. package/dist.commonjs/signer/evm/signerEvm.js +3 -3
  84. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts +0 -6
  85. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -1
  86. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.js +0 -8
  87. package/dist.commonjs/signer/index.d.ts +1 -0
  88. package/dist.commonjs/signer/index.d.ts.map +1 -1
  89. package/dist.commonjs/signer/index.js +1 -0
  90. package/dist.commonjs/signer/nostr/index.d.ts +2 -0
  91. package/dist.commonjs/signer/nostr/index.d.ts.map +1 -0
  92. package/dist.commonjs/signer/nostr/index.js +17 -0
  93. package/dist.commonjs/signer/nostr/signerNostr.d.ts +66 -0
  94. package/dist.commonjs/signer/nostr/signerNostr.d.ts.map +1 -0
  95. package/dist.commonjs/signer/nostr/signerNostr.js +88 -0
  96. package/dist.commonjs/signer/nostr/verify.d.ts +5 -0
  97. package/dist.commonjs/signer/nostr/verify.d.ts.map +1 -0
  98. package/dist.commonjs/signer/nostr/verify.js +53 -0
  99. package/dist.commonjs/signer/signer/index.d.ts +7 -12
  100. package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
  101. package/dist.commonjs/signer/signer/index.js +11 -4
  102. package/dist.commonjs/utils/index.d.ts +59 -0
  103. package/dist.commonjs/utils/index.d.ts.map +1 -1
  104. package/dist.commonjs/utils/index.js +19 -1
  105. package/package.json +4 -3
  106. package/src/ckb/transaction.ts +50 -18
  107. package/src/client/client.ts +12 -10
  108. package/src/client/clientPublicMainnet.advanced.ts +2 -1
  109. package/src/client/clientPublicMainnet.ts +7 -1
  110. package/src/client/clientPublicTestnet.advanced.ts +5 -0
  111. package/src/signer/btc/signerBtc.ts +4 -7
  112. package/src/signer/btc/signerBtcPublicKeyReadonly.ts +0 -9
  113. package/src/signer/btc/verify.ts +6 -3
  114. package/src/signer/ckb/signerCkbScriptReadonly.ts +0 -9
  115. package/src/signer/dummy/alwaysError.ts +0 -4
  116. package/src/signer/dummy/openLink.ts +0 -4
  117. package/src/signer/evm/signerEvm.ts +7 -9
  118. package/src/signer/evm/signerEvmAddressReadonly.ts +0 -9
  119. package/src/signer/index.ts +1 -0
  120. package/src/signer/nostr/index.ts +1 -0
  121. package/src/signer/nostr/signerNostr.ts +134 -0
  122. package/src/signer/nostr/verify.ts +63 -0
  123. package/src/signer/signer/index.ts +15 -11
  124. package/src/utils/index.ts +104 -0
@@ -0,0 +1,66 @@
1
+ import { Address } from "../../address";
2
+ import { BytesLike } from "../../bytes";
3
+ import { Transaction, TransactionLike } from "../../ckb";
4
+ import { Hex } from "../../hex";
5
+ import { Signer, SignerSignType, SignerType } from "../signer";
6
+ export interface NostrEvent {
7
+ id?: string;
8
+ pubkey?: string;
9
+ sig?: string;
10
+ created_at: number;
11
+ kind: number;
12
+ tags: string[][];
13
+ content: string;
14
+ }
15
+ export declare abstract class SignerNostr extends Signer {
16
+ static CKB_SIG_HASH_ALL_TAG: string;
17
+ static CKB_UNLOCK_EVENT_KIND: number;
18
+ static CKB_UNLOCK_EVENT_CONTENT: string;
19
+ get type(): SignerType;
20
+ get signType(): SignerSignType;
21
+ /**
22
+ * Gets the Nostr public key associated with the signer.
23
+ *
24
+ * @returns A promise that resolves to a string representing the Nostr public key.
25
+ */
26
+ abstract getNostrPublicKey(): Promise<Hex>;
27
+ /**
28
+ * Sign a nostr event.
29
+ *
30
+ * @returns A promise that resolves to the signed event.
31
+ */
32
+ abstract signNostrEvent(event: NostrEvent): Promise<Required<NostrEvent>>;
33
+ /**
34
+ * Sign a message.
35
+ *
36
+ * @returns A promise that resolves to the signature.
37
+ */
38
+ signMessageRaw(message: string | BytesLike): Promise<Hex>;
39
+ /**
40
+ * Gets the internal address, which is the EVM account in this case.
41
+ *
42
+ * @returns A promise that resolves to a string representing the internal address.
43
+ */
44
+ getInternalAddress(): Promise<string>;
45
+ /**
46
+ * Gets an array of Address objects representing the known script addresses for the signer.
47
+ *
48
+ * @returns A promise that resolves to an array of Address objects.
49
+ */
50
+ getAddressObjs(): Promise<Address[]>;
51
+ /**
52
+ * prepare a transaction before signing.
53
+ *
54
+ * @param txLike - The transaction to prepare, represented as a TransactionLike object.
55
+ * @returns A promise that resolves to the prepared Transaction object.
56
+ */
57
+ prepareTransaction(txLike: TransactionLike): Promise<Transaction>;
58
+ /**
59
+ * Signs a transaction without modifying it.
60
+ *
61
+ * @param txLike - The transaction to sign, represented as a TransactionLike object.
62
+ * @returns A promise that resolves to a signed Transaction object.
63
+ */
64
+ signOnlyTransaction(txLike: TransactionLike): Promise<Transaction>;
65
+ }
66
+ //# sourceMappingURL=signerNostr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signerNostr.d.ts","sourceRoot":"","sources":["../../../src/signer/nostr/signerNostr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAA0B,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAe,MAAM,WAAW,CAAC;AAGtE,OAAO,EAAE,GAAG,EAAW,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG/D,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,8BAAsB,WAAY,SAAQ,MAAM;IAC9C,MAAM,CAAC,oBAAoB,SAAqB;IAChD,MAAM,CAAC,qBAAqB,SAAS;IACrC,MAAM,CAAC,wBAAwB,SACkH;IAEjJ,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC;IAE1C;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEzE;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAM/D;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAO3C;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAW1C;;;;;OAKG;IACG,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAOvE;;;;;OAKG;IACG,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;CA2BzE"}
@@ -0,0 +1,84 @@
1
+ import { bech32 } from "bech32";
2
+ import { Address } from "../../address";
3
+ import { bytesConcat, bytesFrom } from "../../bytes";
4
+ import { Transaction, WitnessArgs } from "../../ckb";
5
+ import { KnownScript } from "../../client";
6
+ import { ckbHash } from "../../hasher";
7
+ import { hexFrom } from "../../hex";
8
+ import { Signer, SignerSignType, SignerType } from "../signer";
9
+ import { buildNostrEventFromMessage } from "./verify";
10
+ export class SignerNostr extends Signer {
11
+ get type() {
12
+ return SignerType.Nostr;
13
+ }
14
+ get signType() {
15
+ return SignerSignType.NostrEvent;
16
+ }
17
+ /**
18
+ * Sign a message.
19
+ *
20
+ * @returns A promise that resolves to the signature.
21
+ */
22
+ async signMessageRaw(message) {
23
+ return hexFrom((await this.signNostrEvent(buildNostrEventFromMessage(message))).sig);
24
+ }
25
+ /**
26
+ * Gets the internal address, which is the EVM account in this case.
27
+ *
28
+ * @returns A promise that resolves to a string representing the internal address.
29
+ */
30
+ async getInternalAddress() {
31
+ return bech32.encode("npub", bech32.toWords(bytesFrom(await this.getNostrPublicKey())));
32
+ }
33
+ /**
34
+ * Gets an array of Address objects representing the known script addresses for the signer.
35
+ *
36
+ * @returns A promise that resolves to an array of Address objects.
37
+ */
38
+ async getAddressObjs() {
39
+ const publicKey = await this.getNostrPublicKey();
40
+ return [
41
+ await Address.fromKnownScript(KnownScript.NostrLock, hexFrom(bytesConcat([0x00], ckbHash(publicKey).slice(0, 42))), this.client),
42
+ ];
43
+ }
44
+ /**
45
+ * prepare a transaction before signing.
46
+ *
47
+ * @param txLike - The transaction to prepare, represented as a TransactionLike object.
48
+ * @returns A promise that resolves to the prepared Transaction object.
49
+ */
50
+ async prepareTransaction(txLike) {
51
+ const tx = Transaction.from(txLike);
52
+ const { script } = await this.getRecommendedAddressObj();
53
+ await tx.prepareSighashAllWitness(script, 572, this.client);
54
+ return tx;
55
+ }
56
+ /**
57
+ * Signs a transaction without modifying it.
58
+ *
59
+ * @param txLike - The transaction to sign, represented as a TransactionLike object.
60
+ * @returns A promise that resolves to a signed Transaction object.
61
+ */
62
+ async signOnlyTransaction(txLike) {
63
+ let tx = Transaction.from(txLike);
64
+ const { script } = await this.getRecommendedAddressObj();
65
+ const info = await tx.getSignHashInfo(script, this.client);
66
+ if (!info) {
67
+ return tx;
68
+ }
69
+ const signedEvent = bytesFrom(JSON.stringify(await this.signNostrEvent({
70
+ pubkey: (await this.getNostrPublicKey()).slice(2),
71
+ tags: [[SignerNostr.CKB_SIG_HASH_ALL_TAG, info.message.slice(2)]],
72
+ created_at: Math.floor(Date.now() / 1000),
73
+ kind: SignerNostr.CKB_UNLOCK_EVENT_KIND,
74
+ content: SignerNostr.CKB_UNLOCK_EVENT_CONTENT,
75
+ })), "utf8");
76
+ const witness = WitnessArgs.fromBytes(tx.witnesses[info.position]);
77
+ witness.lock = hexFrom(signedEvent);
78
+ tx.setWitnessArgsAt(info.position, witness);
79
+ return tx;
80
+ }
81
+ }
82
+ SignerNostr.CKB_SIG_HASH_ALL_TAG = "ckb_sighash_all";
83
+ SignerNostr.CKB_UNLOCK_EVENT_KIND = 23334;
84
+ SignerNostr.CKB_UNLOCK_EVENT_CONTENT = "Signing a CKB transaction\n\nIMPORTANT: Please verify the integrity and authenticity of connected Nostr client before signing this message\n";
@@ -0,0 +1,5 @@
1
+ import { BytesLike } from "../../bytes";
2
+ import { NostrEvent } from "./signerNostr";
3
+ export declare function buildNostrEventFromMessage(message: string | BytesLike): NostrEvent;
4
+ export declare function verifyMessageNostrEvent(message: string | BytesLike, signature: string, address: string): boolean;
5
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/signer/nostr/verify.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAa,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,UAAU,CA2BZ;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAoBT"}
@@ -0,0 +1,48 @@
1
+ import { schnorr } from "@noble/curves/secp256k1";
2
+ import { sha256 } from "@noble/hashes/sha256";
3
+ import { bech32 } from "bech32";
4
+ import { bytesFrom } from "../../bytes";
5
+ import { hexFrom } from "../../hex";
6
+ export function buildNostrEventFromMessage(message) {
7
+ if (typeof message === "string") {
8
+ try {
9
+ const event = JSON.parse(message);
10
+ if (typeof event === "object" &&
11
+ typeof event.created_at === "number" &&
12
+ typeof event.kind === "number" &&
13
+ typeof event.content === "string" &&
14
+ Array.isArray(event.args) &&
15
+ event.args.every((tag) => Array.isArray(tag) &&
16
+ tag.every((v) => typeof v === "string"))) {
17
+ return event;
18
+ }
19
+ }
20
+ catch (_) { }
21
+ }
22
+ return {
23
+ kind: 23335,
24
+ created_at: 0,
25
+ content: typeof message === "string" ? message : hexFrom(message),
26
+ tags: [],
27
+ };
28
+ }
29
+ export function verifyMessageNostrEvent(message, signature, address) {
30
+ const { words } = bech32.decode(address);
31
+ const publicKey = hexFrom(bech32.fromWords(words)).slice(2);
32
+ const event = buildNostrEventFromMessage(message);
33
+ const serialized = JSON.stringify([
34
+ 0,
35
+ publicKey,
36
+ event.created_at,
37
+ event.kind,
38
+ event.tags,
39
+ event.content,
40
+ ]);
41
+ const eventHash = hexFrom(sha256(bytesFrom(serialized, "utf8")));
42
+ try {
43
+ return schnorr.verify(signature.slice(2), eventHash.slice(2), publicKey);
44
+ }
45
+ catch (_) {
46
+ return false;
47
+ }
48
+ }
@@ -8,7 +8,8 @@ export declare enum SignerSignType {
8
8
  Unknown = "Unknown",
9
9
  BtcEcdsa = "BtcEcdsa",
10
10
  EvmPersonal = "EvmPersonal",
11
- JoyId = "JoyId"
11
+ JoyId = "JoyId",
12
+ NostrEvent = "NostrEvent"
12
13
  }
13
14
  /**
14
15
  * An enumeration of signer display types in wallet.
@@ -16,7 +17,8 @@ export declare enum SignerSignType {
16
17
  export declare enum SignerType {
17
18
  EVM = "EVM",
18
19
  BTC = "BTC",
19
- CKB = "CKB"
20
+ CKB = "CKB",
21
+ Nostr = "Nostr"
20
22
  }
21
23
  export declare class Signature {
22
24
  signature: string;
@@ -36,23 +38,16 @@ export declare abstract class Signer {
36
38
  get client(): Client;
37
39
  static verifyMessage(message: string | BytesLike, signature: Signature): Promise<boolean>;
38
40
  /**
39
- * Construct a new signer with the client replaced.
40
- *
41
- * @returns A promise that resolves the new Signer.
41
+ * Replace the current client.
42
+ * returns false if the new client is invalid for this signer.
42
43
  */
43
- abstract replaceClient(client: Client): Promise<Signer>;
44
+ replaceClient(client: Client): Promise<boolean>;
44
45
  /**
45
46
  * Connects to the signer.
46
47
  *
47
48
  * @returns A promise that resolves when the connection is complete.
48
49
  */
49
50
  abstract connect(): Promise<void>;
50
- /**
51
- * Disconnects to the signer.
52
- *
53
- * @returns A promise that resolves when disconnected.
54
- */
55
- disconnect(): Promise<void>;
56
51
  /**
57
52
  * Check if the signer is connected.
58
53
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/signer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signer/signer/index.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import { verifyMessageBtcEcdsa } from "../btc";
2
2
  import { verifyMessageJoyId } from "../ckb/verifyJoyId";
3
3
  import { verifyMessageEvmPersonal } from "../evm/verify";
4
+ import { verifyMessageNostrEvent } from "../nostr/verify";
4
5
  export var SignerSignType;
5
6
  (function (SignerSignType) {
6
7
  SignerSignType["Unknown"] = "Unknown";
7
8
  SignerSignType["BtcEcdsa"] = "BtcEcdsa";
8
9
  SignerSignType["EvmPersonal"] = "EvmPersonal";
9
10
  SignerSignType["JoyId"] = "JoyId";
11
+ SignerSignType["NostrEvent"] = "NostrEvent";
10
12
  })(SignerSignType || (SignerSignType = {}));
11
13
  /**
12
14
  * An enumeration of signer display types in wallet.
@@ -16,6 +18,7 @@ export var SignerType;
16
18
  SignerType["EVM"] = "EVM";
17
19
  SignerType["BTC"] = "BTC";
18
20
  SignerType["CKB"] = "CKB";
21
+ SignerType["Nostr"] = "Nostr";
19
22
  })(SignerType || (SignerType = {}));
20
23
  export class Signature {
21
24
  constructor(signature, identity, signType) {
@@ -43,16 +46,20 @@ export class Signer {
43
46
  return verifyMessageBtcEcdsa(message, signature.signature, signature.identity);
44
47
  case SignerSignType.JoyId:
45
48
  return verifyMessageJoyId(message, signature.signature, signature.identity);
49
+ case SignerSignType.NostrEvent:
50
+ return verifyMessageNostrEvent(message, signature.signature, signature.identity);
46
51
  case SignerSignType.Unknown:
47
52
  throw new Error("Unknown signer sign type");
48
53
  }
49
54
  }
50
55
  /**
51
- * Disconnects to the signer.
52
- *
53
- * @returns A promise that resolves when disconnected.
56
+ * Replace the current client.
57
+ * returns false if the new client is invalid for this signer.
54
58
  */
55
- async disconnect() { }
59
+ async replaceClient(client) {
60
+ this.client_ = client;
61
+ return true;
62
+ }
56
63
  /**
57
64
  * Gets the identity for verifying signature, usually it's address
58
65
  *
@@ -1,8 +1,67 @@
1
+ /**
2
+ * A type safe way to apply a transformer on a value if it's not empty.
3
+ *
4
+ * @param transformer - The transformer.
5
+ * @param value - The value to be transformed.
6
+ * @returns If the value is empty, it remains its type. Otherwise it will be transformed.
7
+ */
1
8
  export declare function apply<T, R>(transformer: (val: T) => R, value: undefined): undefined;
9
+ /**
10
+ * A type safe way to apply a transformer on a value if it's not empty.
11
+ *
12
+ * @param transformer - The transformer.
13
+ * @param value - The value to be transformed.
14
+ * @returns If the value is empty, it remains its type. Otherwise it will be transformed.
15
+ */
2
16
  export declare function apply<T, R>(transformer: (val: T) => R, value: null): null;
17
+ /**
18
+ * A type safe way to apply a transformer on a value if it's not empty.
19
+ *
20
+ * @param transformer - The transformer.
21
+ * @param value - The value to be transformed.
22
+ * @returns If the value is empty, it remains its type. Otherwise it will be transformed.
23
+ */
3
24
  export declare function apply<T, R>(transformer: (val: T) => R, value: T): R;
25
+ /**
26
+ * A type safe way to apply a transformer on a value if it's not empty.
27
+ *
28
+ * @param transformer - The transformer.
29
+ * @param value - The value to be transformed.
30
+ * @returns If the value is empty, it remains its type. Otherwise it will be transformed.
31
+ */
4
32
  export declare function apply<T, R>(transformer: (val: T) => R, value: T | undefined): R | undefined;
33
+ /**
34
+ * A type safe way to apply a transformer on a value if it's not empty.
35
+ *
36
+ * @param transformer - The transformer.
37
+ * @param value - The value to be transformed.
38
+ * @returns If the value is empty, it remains its type. Otherwise it will be transformed.
39
+ */
5
40
  export declare function apply<T, R>(transformer: (val: T) => R, value: T | null): R | null;
41
+ /**
42
+ * A type safe way to apply a transformer on a value if it's not empty.
43
+ *
44
+ * @param transformer - The transformer.
45
+ * @param value - The value to be transformed.
46
+ * @returns If the value is empty, it remains its type. Otherwise it will be transformed.
47
+ */
6
48
  export declare function apply<T, R>(transformer: (val: T) => R, value: undefined | null): undefined | null;
49
+ /**
50
+ * Similar to Array.reduce, but the accumulator can returns Promise.
51
+ *
52
+ * @param values - The array to be reduced.
53
+ * @param accumulator - A callback to be called for each value. If it returns null, the previous result will be kept.
54
+ * @returns The accumulated result.
55
+ */
56
+ export declare function reduceAsync<T, V>(values: T[], accumulator: (a: T, b: T) => Promise<T | undefined | null | void> | T | undefined | null | void): Promise<T>;
57
+ /**
58
+ * Similar to Array.reduce, but the accumulator can returns Promise.
59
+ *
60
+ * @param values - The array to be reduced.
61
+ * @param accumulator - A callback to be called for each value. If it returns null, the previous result will be kept.
62
+ * @param init - The initial value.
63
+ * @returns The accumulated result.
64
+ */
65
+ export declare function reduceAsync<T, V>(values: V[], accumulator: (a: T, b: V) => Promise<T | undefined | null | void> | T | undefined | null | void, init: T): Promise<T>;
7
66
  export declare function isWebview(userAgent: string): boolean;
8
67
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GACf,SAAS,CAAC;AACb,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;AAC3E,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AACrE,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GACnB,CAAC,GAAG,SAAS,CAAC;AACjB,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,IAAI,GACd,CAAC,GAAG,IAAI,CAAC;AACZ,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GAAG,IAAI,GACtB,SAAS,GAAG,IAAI,CAAC;AAYpB,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GACf,SAAS,CAAC;AACb;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;AAC3E;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AACrE;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GACnB,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,IAAI,GACd,CAAC,GAAG,IAAI,CAAC;AACZ;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GAAG,IAAI,GACtB,SAAS,GAAG,IAAI,CAAC;AAmBpB;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EACpC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,KACD,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GACtE,OAAO,CAAC,CAAC,CAAC,CAAC;AACd;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EACpC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,KACD,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,EACvE,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,CAAC,CAAC,CAAC;AA0Bd,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -1,9 +1,26 @@
1
+ /**
2
+ * A type safe way to apply a transformer on a value if it's not empty.
3
+ *
4
+ * @param transformer - The transformer.
5
+ * @param value - The value to be transformed.
6
+ * @returns If the value is empty, it remains its type. Otherwise it will be transformed.
7
+ */
1
8
  export function apply(transformer, value) {
2
9
  if (value == null) {
3
10
  return value;
4
11
  }
5
12
  return transformer(value);
6
13
  }
14
+ export async function reduceAsync(values, accumulator, init) {
15
+ if (init === undefined) {
16
+ if (values.length === 0) {
17
+ throw new TypeError("Reduce of empty array with no initial value");
18
+ }
19
+ init = values[0];
20
+ values = values.slice(1);
21
+ }
22
+ return values.reduce((current, b) => current.then((v) => Promise.resolve(accumulator(v, b)).then((r) => r ?? v)), Promise.resolve(init));
23
+ }
7
24
  export function isWebview(userAgent) {
8
25
  return /webview|wv|ip((?!.*Safari)|(?=.*like Safari))/i.test(userAgent);
9
26
  }
@@ -256,12 +256,10 @@ export declare class CellInput {
256
256
  * @returns The completed instance.
257
257
  * @example
258
258
  * ```typescript
259
- * if (!cellInput.cellOutput) {
260
- * await cellInput.completeExtraInfos();
261
- * }
259
+ * await cellInput.completeExtraInfos();
262
260
  * ```
263
261
  */
264
- completeExtraInfos(client: Client): Promise<CellInput>;
262
+ completeExtraInfos(client: Client): Promise<void>;
265
263
  /**
266
264
  * Converts the CellInput instance to molecule data format.
267
265
  *
@@ -573,6 +571,19 @@ export declare class Transaction {
573
571
  * ```
574
572
  */
575
573
  findInputIndexByLock(scriptLike: ScriptLike, client: Client): Promise<number | undefined>;
574
+ /**
575
+ * Find the last occurrence of a input with the specified lock
576
+ *
577
+ * @param scriptLike - The script associated with the transaction, represented as a ScriptLike object.
578
+ * @param client - The client for complete extra infos in the transaction.
579
+ * @returns A promise that resolves to the prepared transaction
580
+ *
581
+ * @example
582
+ * ```typescript
583
+ * const index = await tx.findLastInputIndexByLock(scriptLike, client);
584
+ * ```
585
+ */
586
+ findLastInputIndexByLock(scriptLike: ScriptLike, client: Client): Promise<number | undefined>;
576
587
  /**
577
588
  * Get witness at index as WitnessArgs
578
589
  *
@@ -597,7 +608,7 @@ export declare class Transaction {
597
608
  * await tx.setWitnessArgsAt(0, witnessArgs);
598
609
  * ```
599
610
  */
600
- setWitnessArgsAt(index: number, witness: WitnessArgs): Transaction;
611
+ setWitnessArgsAt(index: number, witness: WitnessArgs): void;
601
612
  /**
602
613
  * Prepare dummy witness for sighash all method
603
614
  *
@@ -611,6 +622,6 @@ export declare class Transaction {
611
622
  * await tx.prepareSighashAllWitness(scriptLike, 85, client);
612
623
  * ```
613
624
  */
614
- prepareSighashAllWitness(scriptLike: ScriptLike, lockLen: number, client: Client): Promise<Transaction>;
625
+ prepareSighashAllWitness(scriptLike: ScriptLike, lockLen: number, client: Client): Promise<void>;
615
626
  }
616
627
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/ckb/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/ckb/transaction.ts"],"names":[],"mappings":"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"}
@@ -316,22 +316,20 @@ class CellInput {
316
316
  * @returns The completed instance.
317
317
  * @example
318
318
  * ```typescript
319
- * if (!cellInput.cellOutput) {
320
- * await cellInput.completeExtraInfos();
321
- * }
319
+ * await cellInput.completeExtraInfos();
322
320
  * ```
323
321
  */
324
322
  async completeExtraInfos(client) {
325
323
  if (this.cellOutput && this.outputData && this.blockNumber) {
326
- return this;
324
+ return;
327
325
  }
328
326
  const cell = await client.getCell(this.previousOutput);
329
- if (cell) {
330
- this.cellOutput = cell.cellOutput;
331
- this.outputData = cell.outputData;
332
- this.blockNumber = cell.blockNumber;
327
+ if (!cell) {
328
+ return;
333
329
  }
334
- return this;
330
+ this.cellOutput = cell.cellOutput;
331
+ this.outputData = cell.outputData;
332
+ this.blockNumber = cell.blockNumber;
335
333
  }
336
334
  /**
337
335
  * Converts the CellInput instance to molecule data format.
@@ -699,8 +697,9 @@ class Transaction {
699
697
  const hasher = new hasher_1.Hasher();
700
698
  hasher.update(this.hash());
701
699
  for (let i = 0; i < this.witnesses.length; i += 1) {
702
- if (this.inputs[i]) {
703
- const input = await this.inputs[i].completeExtraInfos(client);
700
+ const input = this.inputs[i];
701
+ if (input) {
702
+ await input.completeExtraInfos(client);
704
703
  if (!input.cellOutput) {
705
704
  throw Error("Unable to resolve inputs info");
706
705
  }
@@ -739,7 +738,33 @@ class Transaction {
739
738
  async findInputIndexByLock(scriptLike, client) {
740
739
  const script = script_1.Script.from(scriptLike);
741
740
  for (let i = 0; i < this.inputs.length; i += 1) {
742
- const input = await this.inputs[i].completeExtraInfos(client);
741
+ const input = this.inputs[i];
742
+ await input.completeExtraInfos(client);
743
+ if (!input.cellOutput) {
744
+ throw Error("Unable to resolve inputs info");
745
+ }
746
+ if (script.eq(input.cellOutput.lock)) {
747
+ return i;
748
+ }
749
+ }
750
+ }
751
+ /**
752
+ * Find the last occurrence of a input with the specified lock
753
+ *
754
+ * @param scriptLike - The script associated with the transaction, represented as a ScriptLike object.
755
+ * @param client - The client for complete extra infos in the transaction.
756
+ * @returns A promise that resolves to the prepared transaction
757
+ *
758
+ * @example
759
+ * ```typescript
760
+ * const index = await tx.findLastInputIndexByLock(scriptLike, client);
761
+ * ```
762
+ */
763
+ async findLastInputIndexByLock(scriptLike, client) {
764
+ const script = script_1.Script.from(scriptLike);
765
+ for (let i = this.inputs.length - 1; i >= 0; i -= 1) {
766
+ const input = this.inputs[i];
767
+ await input.completeExtraInfos(client);
743
768
  if (!input.cellOutput) {
744
769
  throw Error("Unable to resolve inputs info");
745
770
  }
@@ -782,7 +807,6 @@ class Transaction {
782
807
  this.witnesses.push(...Array.from(new Array(index - this.witnesses.length), () => "0x"));
783
808
  }
784
809
  this.witnesses[index] = (0, hex_1.hexFrom)(witness.toBytes());
785
- return this;
786
810
  }
787
811
  /**
788
812
  * Prepare dummy witness for sighash all method
@@ -800,11 +824,11 @@ class Transaction {
800
824
  async prepareSighashAllWitness(scriptLike, lockLen, client) {
801
825
  const position = await this.findInputIndexByLock(scriptLike, client);
802
826
  if (position === undefined) {
803
- return this;
827
+ return;
804
828
  }
805
829
  const witness = this.getWitnessArgsAt(position) ?? WitnessArgs.from({});
806
830
  witness.lock = (0, hex_1.hexFrom)(Array.from(new Array(lockLen), () => 0));
807
- return this.setWitnessArgsAt(position, witness);
831
+ this.setWitnessArgsAt(position, witness);
808
832
  }
809
833
  }
810
834
  exports.Transaction = Transaction;
@@ -3,12 +3,13 @@ import { Hex, HexLike } from "../hex";
3
3
  import { Num, NumLike } from "../num";
4
4
  import { ClientFindCellsResponse, ClientIndexerSearchKeyLike, ClientTransactionResponse, OutputsValidator } from "./clientTypes";
5
5
  export declare enum KnownScript {
6
- Secp256k1Blake160 = 0,
7
- Secp256k1Multisig = 1,
8
- AnyoneCanPay = 2,
9
- JoyId = 3,
10
- COTA = 4,
11
- OmniLock = 5
6
+ Secp256k1Blake160 = "Secp256k1Blake160",
7
+ Secp256k1Multisig = "Secp256k1Multisig",
8
+ AnyoneCanPay = "AnyoneCanPay",
9
+ JoyId = "JoyId",
10
+ COTA = "COTA",
11
+ OmniLock = "OmniLock",
12
+ NostrLock = "NostrLock"
12
13
  }
13
14
  export declare abstract class Client {
14
15
  abstract get url(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,UAAU,EACV,eAAe,EAChB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,QAAQ,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,oBAAY,WAAW;IACrB,iBAAiB,IAAA;IACjB,iBAAiB,IAAA;IACjB,YAAY,IAAA;IACZ,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,QAAQ,IAAA;CACT;AAED,8BAAsB,MAAM;IAC1B,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAC;IAC3B,QAAQ,KAAK,aAAa,IAAI,MAAM,CAAC;IAErC,QAAQ,CAAC,cAAc,CACrB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;IAEjD,QAAQ,CAAC,eAAe,CACtB,WAAW,EAAE,eAAe,EAC5B,SAAS,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,GAAG,CAAC;IACf,QAAQ,CAAC,cAAc,CACrB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAEtC,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAmB3D,QAAQ,CAAC,cAAc,CACrB,GAAG,EAAE,0BAA0B,EAC/B,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,EACtB,KAAK,CAAC,EAAE,OAAO,EACf,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,uBAAuB,CAAC;IAE5B,SAAS,CACd,GAAG,EAAE,0BAA0B,EAC/B,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,EACtB,KAAK,SAAK,GACT,cAAc,CAAC,IAAI,CAAC;IAoBvB,sBAAsB,CACpB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,QAAQ,UAAO,GACd,cAAc,CAAC,IAAI,CAAC;IAYvB,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;IAElE,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAYhD,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CAOpD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,UAAU,EACV,eAAe,EAChB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,QAAQ,CAAC;AAE/C,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,oBAAY,WAAW;IACrB,iBAAiB,sBAAsB;IACvC,iBAAiB,sBAAsB;IACvC,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,8BAAsB,MAAM;IAC1B,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAC;IAC3B,QAAQ,KAAK,aAAa,IAAI,MAAM,CAAC;IAErC,QAAQ,CAAC,cAAc,CACrB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;IAEjD,QAAQ,CAAC,eAAe,CACtB,WAAW,EAAE,eAAe,EAC5B,SAAS,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,GAAG,CAAC;IACf,QAAQ,CAAC,cAAc,CACrB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAEtC,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAmB3D,QAAQ,CAAC,cAAc,CACrB,GAAG,EAAE,0BAA0B,EAC/B,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,EACtB,KAAK,CAAC,EAAE,OAAO,EACf,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,uBAAuB,CAAC;IAE5B,SAAS,CACd,GAAG,EAAE,0BAA0B,EAC/B,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,EACtB,KAAK,SAAK,GACT,cAAc,CAAC,IAAI,CAAC;IAoBvB,sBAAsB,CACpB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,QAAQ,UAAO,GACd,cAAc,CAAC,IAAI,CAAC;IAYvB,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;IAElE,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAYhD,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CAOpD"}