@1sat/actions 0.0.45 → 0.0.47

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 (75) hide show
  1. package/dist/constants.d.ts +1 -1
  2. package/dist/constants.d.ts.map +1 -1
  3. package/dist/constants.js +1 -1
  4. package/dist/constants.js.map +1 -1
  5. package/dist/identity/index.d.ts +81 -0
  6. package/dist/identity/index.d.ts.map +1 -0
  7. package/dist/identity/index.js +433 -0
  8. package/dist/identity/index.js.map +1 -0
  9. package/dist/index.d.ts +5 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +9 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/inscriptions/index.d.ts.map +1 -1
  14. package/dist/inscriptions/index.js +29 -4
  15. package/dist/inscriptions/index.js.map +1 -1
  16. package/dist/locks/index.d.ts.map +1 -1
  17. package/dist/locks/index.js +2 -2
  18. package/dist/locks/index.js.map +1 -1
  19. package/dist/opns/index.d.ts.map +1 -1
  20. package/dist/opns/index.js +4 -23
  21. package/dist/opns/index.js.map +1 -1
  22. package/dist/ordinals/index.d.ts.map +1 -1
  23. package/dist/ordinals/index.js +54 -15
  24. package/dist/ordinals/index.js.map +1 -1
  25. package/dist/paymail.d.ts.map +1 -1
  26. package/dist/paymail.js +1 -1
  27. package/dist/paymail.js.map +1 -1
  28. package/dist/payments/index.d.ts.map +1 -1
  29. package/dist/payments/index.js +3 -1
  30. package/dist/payments/index.js.map +1 -1
  31. package/dist/signing/aip.d.ts +13 -0
  32. package/dist/signing/aip.d.ts.map +1 -0
  33. package/dist/signing/aip.js +51 -0
  34. package/dist/signing/aip.js.map +1 -0
  35. package/dist/signing/index.d.ts +1 -0
  36. package/dist/signing/index.d.ts.map +1 -1
  37. package/dist/signing/index.js +2 -1
  38. package/dist/signing/index.js.map +1 -1
  39. package/dist/signing/sigma.d.ts.map +1 -1
  40. package/dist/signing/sigma.js +22 -10
  41. package/dist/signing/sigma.js.map +1 -1
  42. package/dist/social/index.d.ts +28 -0
  43. package/dist/social/index.d.ts.map +1 -0
  44. package/dist/social/index.js +119 -0
  45. package/dist/social/index.js.map +1 -0
  46. package/dist/sweep/index.d.ts.map +1 -1
  47. package/dist/sweep/index.js +31 -15
  48. package/dist/sweep/index.js.map +1 -1
  49. package/dist/sync/index.d.ts +5 -2
  50. package/dist/sync/index.d.ts.map +1 -1
  51. package/dist/sync/index.js +28 -229
  52. package/dist/sync/index.js.map +1 -1
  53. package/dist/sync/syncMessages.d.ts +20 -0
  54. package/dist/sync/syncMessages.d.ts.map +1 -0
  55. package/dist/sync/syncMessages.js +94 -0
  56. package/dist/sync/syncMessages.js.map +1 -0
  57. package/dist/tokens/index.d.ts.map +1 -1
  58. package/dist/tokens/index.js +36 -6
  59. package/dist/tokens/index.js.map +1 -1
  60. package/dist/types.d.ts +1 -1
  61. package/dist/types.d.ts.map +1 -1
  62. package/dist/types.js.map +1 -1
  63. package/dist/utils/completeSignedAction.d.ts +1 -1
  64. package/dist/utils/completeSignedAction.d.ts.map +1 -1
  65. package/dist/utils/completeSignedAction.js.map +1 -1
  66. package/dist/utils/createTrackedAction.d.ts.map +1 -1
  67. package/dist/utils/createTrackedAction.js +1 -1
  68. package/dist/utils/createTrackedAction.js.map +1 -1
  69. package/dist/utils/internalizeBeef.d.ts +45 -0
  70. package/dist/utils/internalizeBeef.d.ts.map +1 -0
  71. package/dist/utils/internalizeBeef.js +252 -0
  72. package/dist/utils/internalizeBeef.js.map +1 -0
  73. package/dist/utils/resolveBeef.d.ts.map +1 -1
  74. package/dist/utils/resolveBeef.js.map +1 -1
  75. package/package.json +2 -2
@@ -1,2 +1,2 @@
1
- export { BAP_KEY_ID, BAP_PROTOCOL_ID, BSV21_BASKET, BSV21_FEE_SATS, BSV21_PROTOCOL, EXCHANGE_RATE_CACHE_TTL, FUNDING_BASKET, LOCK_BASKET, LOCK_PREFIX, LOCK_SUFFIX, MAX_INSCRIPTION_BYTES, MIN_UNLOCK_SATS, MESSAGE_SIGNING_PROTOCOL, ONESAT_MAINNET_CONTENT_URL, ONESAT_MAINNET_URL, ONESAT_PROTOCOL, ONESAT_TESTNET_CONTENT_URL, ONESAT_TESTNET_URL, OPNS_BASKET, ORDINALS_BASKET, SIGMA_BASKET, ORD_LOCK_PREFIX, ORD_LOCK_SUFFIX, WOC_MAINNET_URL, WOC_TESTNET_URL, } from '@1sat/types';
1
+ export { BAP_BASKET, BAP_BITCOM_ADDRESS, BAP_KEY_ID, BAP_PROTOCOL_ID, BSV21_BASKET, BSV21_FEE_SATS, BSV21_PROTOCOL, EXCHANGE_RATE_CACHE_TTL, FUNDING_BASKET, LOCK_BASKET, LOCK_PREFIX, LOCK_SUFFIX, MAX_INSCRIPTION_BYTES, MIN_UNLOCK_SATS, MESSAGE_SIGNING_PROTOCOL, ONESAT_MAINNET_CONTENT_URL, ONESAT_MAINNET_URL, ONESAT_PROTOCOL, ONESAT_TESTNET_CONTENT_URL, ONESAT_TESTNET_URL, OPNS_BASKET, ORDINALS_BASKET, BSOCIAL_BASKET, SIGMA_BASKET, ORD_LOCK_PREFIX, ORD_LOCK_SUFFIX, WOC_MAINNET_URL, WOC_TESTNET_URL, } from '@1sat/types';
2
2
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GACf,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GACf,MAAM,aAAa,CAAA"}
package/dist/constants.js CHANGED
@@ -1,2 +1,2 @@
1
- export { BAP_KEY_ID, BAP_PROTOCOL_ID, BSV21_BASKET, BSV21_FEE_SATS, BSV21_PROTOCOL, EXCHANGE_RATE_CACHE_TTL, FUNDING_BASKET, LOCK_BASKET, LOCK_PREFIX, LOCK_SUFFIX, MAX_INSCRIPTION_BYTES, MIN_UNLOCK_SATS, MESSAGE_SIGNING_PROTOCOL, ONESAT_MAINNET_CONTENT_URL, ONESAT_MAINNET_URL, ONESAT_PROTOCOL, ONESAT_TESTNET_CONTENT_URL, ONESAT_TESTNET_URL, OPNS_BASKET, ORDINALS_BASKET, SIGMA_BASKET, ORD_LOCK_PREFIX, ORD_LOCK_SUFFIX, WOC_MAINNET_URL, WOC_TESTNET_URL, } from '@1sat/types';
1
+ export { BAP_BASKET, BAP_BITCOM_ADDRESS, BAP_KEY_ID, BAP_PROTOCOL_ID, BSV21_BASKET, BSV21_FEE_SATS, BSV21_PROTOCOL, EXCHANGE_RATE_CACHE_TTL, FUNDING_BASKET, LOCK_BASKET, LOCK_PREFIX, LOCK_SUFFIX, MAX_INSCRIPTION_BYTES, MIN_UNLOCK_SATS, MESSAGE_SIGNING_PROTOCOL, ONESAT_MAINNET_CONTENT_URL, ONESAT_MAINNET_URL, ONESAT_PROTOCOL, ONESAT_TESTNET_CONTENT_URL, ONESAT_TESTNET_URL, OPNS_BASKET, ORDINALS_BASKET, BSOCIAL_BASKET, SIGMA_BASKET, ORD_LOCK_PREFIX, ORD_LOCK_SUFFIX, WOC_MAINNET_URL, WOC_TESTNET_URL, } from '@1sat/types';
2
2
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GACf,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GACf,MAAM,aAAa,CAAA"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Identity Module
3
+ *
4
+ * BAP identity actions: attestations and alias/profile updates.
5
+ * Uses the wallet's BAP signing key ([1, "bapid"] / "identity") via applyAip.
6
+ *
7
+ * Prerequisite: Sigma Identity must seed the wallet's `bap` basket with
8
+ * an output tagged `type:id` and `bapId:<hash>` so actions can resolve
9
+ * the BAP identity key from wallet state.
10
+ */
11
+ import type { Action, OneSatContext } from '../types';
12
+ /**
13
+ * Resolve the BAP identity key from the wallet's `bap` basket.
14
+ *
15
+ * Looks for an output tagged `type:id` and extracts the `bapId:` tag value.
16
+ * Returns null if no identity output exists (Sigma Identity hasn't seeded
17
+ * the wallet yet).
18
+ */
19
+ export declare function resolveBapId(ctx: OneSatContext): Promise<string | null>;
20
+ export interface PublishIdentityRequest {
21
+ /** Pre-signed BAP ID locking script hex (AIP-signed with root key) */
22
+ signedScript: string;
23
+ }
24
+ export interface AttestRequest {
25
+ /** SHA-256 hash of the attestation URN (urn:bap:id:attribute:value:nonce) */
26
+ attestationHash: string;
27
+ /** Attestation sequence number (default "0") */
28
+ counter?: string;
29
+ }
30
+ export interface UpdateProfileRequest {
31
+ /** Schema.org profile data (e.g. { "@type": "Person", "name": "Alice" }) */
32
+ profile: Record<string, unknown>;
33
+ }
34
+ export interface IdentityResponse {
35
+ txid?: string;
36
+ rawtx?: string;
37
+ error?: string;
38
+ }
39
+ export interface ProfileResponse {
40
+ bapId?: string;
41
+ profile?: Record<string, unknown>;
42
+ error?: string;
43
+ }
44
+ /**
45
+ * Publish a BAP ID record using a pre-signed locking script.
46
+ *
47
+ * The caller (Sigma Identity) signs the ID OP_RETURN with the root key
48
+ * via PrivateKeySigner + AIP. This action validates the script, verifies
49
+ * the AIP signature, confirms the currentAddress matches this wallet,
50
+ * then funds the transaction via the BRC-100 wallet. The output lands
51
+ * in the `bap` basket so that resolveBapId() can find it.
52
+ *
53
+ * For Droplit-funded onboarding, use internalizeAction() directly instead.
54
+ */
55
+ export declare const publishIdentity: Action<PublishIdentityRequest, IdentityResponse>;
56
+ /**
57
+ * Publish a BAP ATTEST transaction.
58
+ *
59
+ * OP_RETURN: BAP_PREFIX | "ATTEST" | attestation_hash | counter
60
+ * Signed with AIP via the wallet's BAP signing key.
61
+ */
62
+ export declare const attest: Action<AttestRequest, IdentityResponse>;
63
+ /**
64
+ * Publish a BAP ALIAS transaction to update the identity's profile.
65
+ *
66
+ * OP_RETURN: BAP_PREFIX | "ALIAS" | bap_id | profile_json
67
+ * Signed with AIP via the wallet's BAP signing key.
68
+ *
69
+ * The BAP ID is resolved from the wallet's `bap` basket (seeded by Sigma Identity).
70
+ */
71
+ export declare const updateProfile: Action<UpdateProfileRequest, IdentityResponse>;
72
+ /**
73
+ * Read the current BAP profile (alias) from the wallet's `bap` basket.
74
+ *
75
+ * Parses the ALIAS OP_RETURN locking script to extract the profile JSON.
76
+ * If duplicate alias outputs exist, keeps the first and relinquishes the rest.
77
+ */
78
+ export declare const getProfile: Action<Record<string, never>, ProfileResponse>;
79
+ /** All identity actions for registry */
80
+ export declare const identityActions: (Action<PublishIdentityRequest, IdentityResponse> | Action<AttestRequest, IdentityResponse> | Action<UpdateProfileRequest, IdentityResponse> | Action<Record<string, never>, ProfileResponse>)[];
81
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkBH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAUrD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAe7E;AAMD,MAAM,WAAW,sBAAsB;IACtC,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC7B,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACpC,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAgJD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,sBAAsB,EAAE,gBAAgB,CA6D3E,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAgE1D,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAkFxE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,eAAe,CAyDrE,CAAA;AAED,wCAAwC;AACxC,eAAO,MAAM,eAAe,kMAAuD,CAAA"}
@@ -0,0 +1,433 @@
1
+ /**
2
+ * Identity Module
3
+ *
4
+ * BAP identity actions: attestations and alias/profile updates.
5
+ * Uses the wallet's BAP signing key ([1, "bapid"] / "identity") via applyAip.
6
+ *
7
+ * Prerequisite: Sigma Identity must seed the wallet's `bap` basket with
8
+ * an output tagged `type:id` and `bapId:<hash>` so actions can resolve
9
+ * the BAP identity key from wallet state.
10
+ */
11
+ import { BSM, BigNumber, OP, PublicKey, Script, Signature, Utils, } from '@bsv/sdk';
12
+ import { BAP_BASKET, BAP_BITCOM_ADDRESS, BAP_KEY_ID, BAP_PROTOCOL_ID, } from '../constants';
13
+ import { applyAip } from '../signing/aip';
14
+ const { toArray, toUTF8 } = Utils;
15
+ const AIP_PREFIX = '15PciHG22SNLQJXMoSUaWVi7WSqc7hCfva';
16
+ // ============================================================================
17
+ // BAP ID Resolution
18
+ // ============================================================================
19
+ /**
20
+ * Resolve the BAP identity key from the wallet's `bap` basket.
21
+ *
22
+ * Looks for an output tagged `type:id` and extracts the `bapId:` tag value.
23
+ * Returns null if no identity output exists (Sigma Identity hasn't seeded
24
+ * the wallet yet).
25
+ */
26
+ export async function resolveBapId(ctx) {
27
+ const result = await ctx.wallet.listOutputs({
28
+ basket: BAP_BASKET,
29
+ tags: ['type:id'],
30
+ includeTags: true,
31
+ limit: 1,
32
+ });
33
+ if (!result.outputs.length)
34
+ return null;
35
+ const output = result.outputs[0];
36
+ const bapIdTag = output.tags?.find((t) => t.startsWith('bapId:'));
37
+ if (!bapIdTag)
38
+ return null;
39
+ return bapIdTag.slice('bapId:'.length);
40
+ }
41
+ // ============================================================================
42
+ // Actions
43
+ // ============================================================================
44
+ /**
45
+ * Parse and validate a BAP ID locking script.
46
+ *
47
+ * Expected format:
48
+ * OP_FALSE OP_RETURN <BAP_PREFIX> <"ID"> <bapId> <currentAddress> | <AIP_PREFIX> <algorithm> <address> <signature>
49
+ *
50
+ * Validates:
51
+ * 1. Script structure (BAP prefix, "ID" command, required fields)
52
+ * 2. AIP signature over the OP_RETURN content
53
+ * 3. currentAddress matches the wallet's BAP-derived key
54
+ */
55
+ async function validateBapIdScript(ctx, script) {
56
+ const chunks = script.chunks;
57
+ // Minimum: OP_FALSE OP_RETURN BAP_PREFIX "ID" bapId currentAddress | AIP_PREFIX algorithm address signature
58
+ if (chunks.length < 10) {
59
+ return { error: 'invalid-script: too few chunks' };
60
+ }
61
+ // Verify OP_FALSE OP_RETURN prefix
62
+ if (chunks[0].op !== OP.OP_FALSE || chunks[1].op !== OP.OP_RETURN) {
63
+ return { error: 'invalid-script: missing OP_FALSE OP_RETURN' };
64
+ }
65
+ // Verify BAP prefix
66
+ const prefix = chunks[2]?.data
67
+ ? toUTF8(Array.from(chunks[2].data))
68
+ : '';
69
+ if (prefix !== BAP_BITCOM_ADDRESS) {
70
+ return { error: 'invalid-script: not a BAP record' };
71
+ }
72
+ // Verify "ID" command
73
+ const command = chunks[3]?.data
74
+ ? toUTF8(Array.from(chunks[3].data))
75
+ : '';
76
+ if (command !== 'ID') {
77
+ return { error: 'invalid-script: not a BAP ID record' };
78
+ }
79
+ // Extract bapId and currentAddress
80
+ const bapIdData = chunks[4]?.data;
81
+ const currentAddressData = chunks[5]?.data;
82
+ if (!bapIdData || !currentAddressData) {
83
+ return { error: 'invalid-script: missing bapId or currentAddress' };
84
+ }
85
+ const bapId = toUTF8(Array.from(bapIdData));
86
+ const currentAddress = toUTF8(Array.from(currentAddressData));
87
+ // Find the pipe delimiter and AIP suffix
88
+ let aipStart = -1;
89
+ for (let i = 6; i < chunks.length; i++) {
90
+ const data = chunks[i]?.data;
91
+ if (data && toUTF8(Array.from(data)) === '|') {
92
+ aipStart = i + 1;
93
+ break;
94
+ }
95
+ }
96
+ if (aipStart < 0 || aipStart + 3 >= chunks.length) {
97
+ return { error: 'invalid-script: missing AIP signature' };
98
+ }
99
+ // Verify AIP prefix
100
+ const aipPrefixData = chunks[aipStart]?.data;
101
+ if (!aipPrefixData || toUTF8(Array.from(aipPrefixData)) !== AIP_PREFIX) {
102
+ return { error: 'invalid-script: invalid AIP prefix' };
103
+ }
104
+ const aipAddressData = chunks[aipStart + 2]?.data;
105
+ const aipSigBytes = chunks[aipStart + 3]?.data;
106
+ if (!aipAddressData || !aipSigBytes) {
107
+ return { error: 'invalid-script: incomplete AIP signature' };
108
+ }
109
+ const aipAddress = toUTF8(Array.from(aipAddressData));
110
+ // Build the AIP message buffer (OP_RETURN + all push data before the pipe)
111
+ const message = [OP.OP_RETURN];
112
+ for (let i = 2; i < chunks.length; i++) {
113
+ const data = chunks[i]?.data;
114
+ if (data && toUTF8(Array.from(data)) === '|')
115
+ break;
116
+ if (data && data.length > 0) {
117
+ message.push(...Array.from(data));
118
+ }
119
+ }
120
+ // Verify AIP signature
121
+ const bsmHash = BSM.magicHash(message);
122
+ const sig = Signature.fromCompact(Utils.toBase64(Array.from(aipSigBytes)), 'base64');
123
+ let sigValid = false;
124
+ for (let recovery = 0; recovery < 4; recovery++) {
125
+ try {
126
+ const pubKey = sig.RecoverPublicKey(recovery, new BigNumber(bsmHash));
127
+ if (BSM.verify(message, sig, pubKey) &&
128
+ pubKey.toAddress() === aipAddress) {
129
+ sigValid = true;
130
+ break;
131
+ }
132
+ }
133
+ catch {
134
+ // try next recovery factor
135
+ }
136
+ }
137
+ if (!sigValid) {
138
+ return { error: 'invalid-signature: AIP signature verification failed' };
139
+ }
140
+ // Verify currentAddress matches this wallet's BAP-derived key
141
+ const { publicKey: walletBapPubKey } = await ctx.wallet.getPublicKey({
142
+ protocolID: BAP_PROTOCOL_ID,
143
+ keyID: BAP_KEY_ID,
144
+ counterparty: 'self',
145
+ });
146
+ const walletBapAddress = PublicKey.fromString(walletBapPubKey).toAddress();
147
+ if (currentAddress !== walletBapAddress) {
148
+ return {
149
+ error: `address-mismatch: script currentAddress ${currentAddress} does not match wallet BAP address ${walletBapAddress}`,
150
+ };
151
+ }
152
+ return { bapId, currentAddress };
153
+ }
154
+ /**
155
+ * Publish a BAP ID record using a pre-signed locking script.
156
+ *
157
+ * The caller (Sigma Identity) signs the ID OP_RETURN with the root key
158
+ * via PrivateKeySigner + AIP. This action validates the script, verifies
159
+ * the AIP signature, confirms the currentAddress matches this wallet,
160
+ * then funds the transaction via the BRC-100 wallet. The output lands
161
+ * in the `bap` basket so that resolveBapId() can find it.
162
+ *
163
+ * For Droplit-funded onboarding, use internalizeAction() directly instead.
164
+ */
165
+ export const publishIdentity = {
166
+ meta: {
167
+ name: 'publishIdentity',
168
+ description: 'Publish a BAP ID record from a pre-signed script, funded by the wallet',
169
+ category: 'identity',
170
+ inputSchema: {
171
+ type: 'object',
172
+ properties: {
173
+ signedScript: {
174
+ type: 'string',
175
+ description: 'Pre-signed BAP ID locking script hex (AIP-signed with root key)',
176
+ },
177
+ },
178
+ required: ['signedScript'],
179
+ },
180
+ },
181
+ async execute(ctx, input) {
182
+ try {
183
+ const script = Script.fromHex(input.signedScript);
184
+ const validation = await validateBapIdScript(ctx, script);
185
+ if ('error' in validation) {
186
+ return { error: validation.error };
187
+ }
188
+ const { bapId } = validation;
189
+ const result = await ctx.wallet.createAction({
190
+ description: 'BAP identity publication',
191
+ outputs: [
192
+ {
193
+ lockingScript: input.signedScript,
194
+ satoshis: 0,
195
+ outputDescription: 'BAP ID',
196
+ basket: BAP_BASKET,
197
+ tags: ['type:id', `bapId:${bapId}`],
198
+ },
199
+ ],
200
+ options: {
201
+ signAndProcess: true,
202
+ acceptDelayedBroadcast: false,
203
+ randomizeOutputs: false,
204
+ },
205
+ });
206
+ if (!result.txid)
207
+ return { error: 'no-txid-returned' };
208
+ return {
209
+ txid: result.txid,
210
+ rawtx: result.tx ? Utils.toHex(result.tx) : undefined,
211
+ };
212
+ }
213
+ catch (error) {
214
+ console.error('[publishIdentity]', error);
215
+ return {
216
+ error: error instanceof Error ? error.message : 'unknown-error',
217
+ };
218
+ }
219
+ },
220
+ };
221
+ /**
222
+ * Publish a BAP ATTEST transaction.
223
+ *
224
+ * OP_RETURN: BAP_PREFIX | "ATTEST" | attestation_hash | counter
225
+ * Signed with AIP via the wallet's BAP signing key.
226
+ */
227
+ export const attest = {
228
+ meta: {
229
+ name: 'attest',
230
+ description: 'Publish a BAP attestation signed with BAP identity',
231
+ category: 'identity',
232
+ inputSchema: {
233
+ type: 'object',
234
+ properties: {
235
+ attestationHash: {
236
+ type: 'string',
237
+ description: 'SHA-256 hash of the attestation URN (urn:bap:id:attribute:value:nonce)',
238
+ },
239
+ counter: {
240
+ type: 'string',
241
+ description: 'Attestation sequence number (default "0")',
242
+ },
243
+ },
244
+ required: ['attestationHash'],
245
+ },
246
+ },
247
+ async execute(ctx, input) {
248
+ try {
249
+ const script = new Script();
250
+ script.writeOpCode(OP.OP_FALSE);
251
+ script.writeOpCode(OP.OP_RETURN);
252
+ script.writeBin(toArray(BAP_BITCOM_ADDRESS));
253
+ script.writeBin(toArray('ATTEST'));
254
+ script.writeBin(toArray(input.attestationHash));
255
+ script.writeBin(toArray(input.counter ?? '0'));
256
+ const signedScript = await applyAip(ctx, script);
257
+ const result = await ctx.wallet.createAction({
258
+ description: 'BAP attestation',
259
+ outputs: [
260
+ {
261
+ lockingScript: signedScript.toHex(),
262
+ satoshis: 0,
263
+ outputDescription: 'BAP ATTEST',
264
+ basket: BAP_BASKET,
265
+ tags: ['type:attest', `hash:${input.attestationHash}`],
266
+ },
267
+ ],
268
+ options: {
269
+ signAndProcess: true,
270
+ acceptDelayedBroadcast: false,
271
+ randomizeOutputs: false,
272
+ },
273
+ });
274
+ if (!result.txid)
275
+ return { error: 'no-txid-returned' };
276
+ return {
277
+ txid: result.txid,
278
+ rawtx: result.tx ? Utils.toHex(result.tx) : undefined,
279
+ };
280
+ }
281
+ catch (error) {
282
+ console.error('[attest]', error);
283
+ return {
284
+ error: error instanceof Error ? error.message : 'unknown-error',
285
+ };
286
+ }
287
+ },
288
+ };
289
+ /**
290
+ * Publish a BAP ALIAS transaction to update the identity's profile.
291
+ *
292
+ * OP_RETURN: BAP_PREFIX | "ALIAS" | bap_id | profile_json
293
+ * Signed with AIP via the wallet's BAP signing key.
294
+ *
295
+ * The BAP ID is resolved from the wallet's `bap` basket (seeded by Sigma Identity).
296
+ */
297
+ export const updateProfile = {
298
+ meta: {
299
+ name: 'updateProfile',
300
+ description: 'Update BAP identity profile signed with BAP identity',
301
+ category: 'identity',
302
+ inputSchema: {
303
+ type: 'object',
304
+ properties: {
305
+ profile: {
306
+ type: 'object',
307
+ description: 'Schema.org profile data (e.g. { "@type": "Person", "name": "Alice" })',
308
+ },
309
+ },
310
+ required: ['profile'],
311
+ },
312
+ },
313
+ async execute(ctx, input) {
314
+ try {
315
+ const bapId = await resolveBapId(ctx);
316
+ if (!bapId) {
317
+ return {
318
+ error: 'no-bap-identity: publish identity via Sigma Identity first',
319
+ };
320
+ }
321
+ // Find existing alias outputs to relinquish after the new one is created
322
+ const existing = await ctx.wallet.listOutputs({
323
+ basket: BAP_BASKET,
324
+ tags: ['type:alias'],
325
+ limit: 100,
326
+ });
327
+ const script = new Script();
328
+ script.writeOpCode(OP.OP_FALSE);
329
+ script.writeOpCode(OP.OP_RETURN);
330
+ script.writeBin(toArray(BAP_BITCOM_ADDRESS));
331
+ script.writeBin(toArray('ALIAS'));
332
+ script.writeBin(toArray(bapId));
333
+ script.writeBin(toArray(JSON.stringify(input.profile)));
334
+ const signedScript = await applyAip(ctx, script);
335
+ const result = await ctx.wallet.createAction({
336
+ description: 'BAP alias update',
337
+ outputs: [
338
+ {
339
+ lockingScript: signedScript.toHex(),
340
+ satoshis: 0,
341
+ outputDescription: 'BAP ALIAS',
342
+ basket: BAP_BASKET,
343
+ tags: ['type:alias', `bapId:${bapId}`],
344
+ },
345
+ ],
346
+ options: {
347
+ signAndProcess: true,
348
+ acceptDelayedBroadcast: false,
349
+ randomizeOutputs: false,
350
+ },
351
+ });
352
+ if (!result.txid)
353
+ return { error: 'no-txid-returned' };
354
+ // Relinquish old alias outputs now that the new one is committed
355
+ for (const old of existing.outputs) {
356
+ await ctx.wallet.relinquishOutput({
357
+ basket: BAP_BASKET,
358
+ output: old.outpoint,
359
+ });
360
+ }
361
+ return {
362
+ txid: result.txid,
363
+ rawtx: result.tx ? Utils.toHex(result.tx) : undefined,
364
+ };
365
+ }
366
+ catch (error) {
367
+ console.error('[updateProfile]', error);
368
+ return {
369
+ error: error instanceof Error ? error.message : 'unknown-error',
370
+ };
371
+ }
372
+ },
373
+ };
374
+ /**
375
+ * Read the current BAP profile (alias) from the wallet's `bap` basket.
376
+ *
377
+ * Parses the ALIAS OP_RETURN locking script to extract the profile JSON.
378
+ * If duplicate alias outputs exist, keeps the first and relinquishes the rest.
379
+ */
380
+ export const getProfile = {
381
+ meta: {
382
+ name: 'getProfile',
383
+ description: 'Read current BAP identity profile from wallet',
384
+ category: 'identity',
385
+ inputSchema: {
386
+ type: 'object',
387
+ properties: {},
388
+ },
389
+ },
390
+ async execute(ctx) {
391
+ try {
392
+ const result = await ctx.wallet.listOutputs({
393
+ basket: BAP_BASKET,
394
+ tags: ['type:alias'],
395
+ include: 'locking scripts',
396
+ includeTags: true,
397
+ limit: 100,
398
+ });
399
+ if (!result.outputs.length) {
400
+ return { error: 'no-profile: no alias output in wallet' };
401
+ }
402
+ // Parse profile from the first output's locking script
403
+ const primary = result.outputs[0];
404
+ const script = Script.fromHex(primary.lockingScript ?? '');
405
+ // Script: OP_FALSE OP_RETURN <BAP_PREFIX> <"ALIAS"> <bapId> <profileJson> [| AIP...]
406
+ // Chunks: [0]=OP_FALSE [1]=OP_RETURN [2]=BAP_PREFIX [3]="ALIAS" [4]=bapId [5]=profileJson
407
+ const bapIdChunk = script.chunks[4]?.data;
408
+ const profileChunk = script.chunks[5]?.data;
409
+ if (!bapIdChunk || !profileChunk) {
410
+ return { error: 'malformed-alias: could not parse locking script' };
411
+ }
412
+ const bapId = Utils.toUTF8(Array.from(bapIdChunk));
413
+ const profile = JSON.parse(Utils.toUTF8(Array.from(profileChunk)));
414
+ // Relinquish duplicates
415
+ for (const dup of result.outputs.slice(1)) {
416
+ await ctx.wallet.relinquishOutput({
417
+ basket: BAP_BASKET,
418
+ output: dup.outpoint,
419
+ });
420
+ }
421
+ return { bapId, profile };
422
+ }
423
+ catch (error) {
424
+ console.error('[getProfile]', error);
425
+ return {
426
+ error: error instanceof Error ? error.message : 'unknown-error',
427
+ };
428
+ }
429
+ },
430
+ };
431
+ /** All identity actions for registry */
432
+ export const identityActions = [publishIdentity, attest, updateProfile, getProfile];
433
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,9 +8,10 @@ export { type Action, type ActionCategory, type ActionLogEntry, type ActionMetad
8
8
  export { ActionRegistry, actionRegistry, type McpTool } from './registry';
9
9
  export * from './constants';
10
10
  export { signP2PKHInput } from './utils/signP2PKH';
11
- export { completeSignedAction, type CompleteSignedActionResult, type SigningCallback } from './utils/completeSignedAction';
12
- export { createTrackedAction, randomActionId } from './utils/createTrackedAction';
11
+ export { completeSignedAction, type CompleteSignedActionResult, type SigningCallback, } from './utils/completeSignedAction';
12
+ export { createTrackedAction, randomActionId, } from './utils/createTrackedAction';
13
13
  export { resolveBeef, extractIdTag } from './utils/resolveBeef';
14
+ export { internalizeBeef, type InternalizeBeefOptions, type InternalizeBeefResult, type OutputDerivation, } from './utils/internalizeBeef';
14
15
  export * from './addresses';
15
16
  export * from './payments';
16
17
  export * from './ordinals';
@@ -18,6 +19,8 @@ export * from './tokens';
18
19
  export * from './inscriptions';
19
20
  export * from './locks';
20
21
  export * from './signing';
22
+ export * from './social';
23
+ export * from './identity';
21
24
  export * from './opns';
22
25
  export * from './sweep';
23
26
  export * from './sync';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACN,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,aAAa,GACb,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAA;AAGzE,cAAc,aAAa,CAAA;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,KAAK,0BAA0B,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC1H,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAG/D,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AAGtB,cAAc,SAAS,CAAA;AAGvB,cAAc,QAAQ,CAAA;AA4BtB,YAAY,EACX,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,YAAY,GACZ,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACN,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,aAAa,GACb,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAA;AAGzE,cAAc,aAAa,CAAA;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EACN,oBAAoB,EACpB,KAAK,0BAA0B,EAC/B,KAAK,eAAe,GACpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACN,mBAAmB,EACnB,cAAc,GACd,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EACN,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACrB,MAAM,yBAAyB,CAAA;AAGhC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AAGtB,cAAc,SAAS,CAAA;AAGvB,cAAc,QAAQ,CAAA;AAgCtB,YAAY,EACX,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,YAAY,GACZ,MAAM,UAAU,CAAA"}
package/dist/index.js CHANGED
@@ -12,9 +12,10 @@ export { ActionRegistry, actionRegistry } from './registry';
12
12
  export * from './constants';
13
13
  // Export shared utilities
14
14
  export { signP2PKHInput } from './utils/signP2PKH';
15
- export { completeSignedAction } from './utils/completeSignedAction';
16
- export { createTrackedAction, randomActionId } from './utils/createTrackedAction';
15
+ export { completeSignedAction, } from './utils/completeSignedAction';
16
+ export { createTrackedAction, randomActionId, } from './utils/createTrackedAction';
17
17
  export { resolveBeef, extractIdTag } from './utils/resolveBeef';
18
+ export { internalizeBeef, } from './utils/internalizeBeef';
18
19
  // Export module actions and types
19
20
  export * from './addresses';
20
21
  export * from './payments';
@@ -23,12 +24,15 @@ export * from './tokens';
23
24
  export * from './inscriptions';
24
25
  export * from './locks';
25
26
  export * from './signing';
27
+ export * from './social';
28
+ export * from './identity';
26
29
  export * from './opns';
27
30
  // Export sweep module (uses external signing, not action-based)
28
31
  export * from './sweep';
29
32
  // Export sync module
30
33
  export * from './sync';
31
34
  import { addressesActions } from './addresses';
35
+ import { identityActions } from './identity';
32
36
  import { inscriptionsActions } from './inscriptions';
33
37
  import { locksActions } from './locks';
34
38
  import { opnsActions } from './opns';
@@ -36,17 +40,20 @@ import { ordinalsActions } from './ordinals';
36
40
  import { paymentsActions } from './payments';
37
41
  import { actionRegistry } from './registry';
38
42
  import { signingActions } from './signing';
43
+ import { socialActions } from './social';
39
44
  import { sweepActions } from './sweep';
40
45
  import { syncActions } from './sync';
41
46
  import { tokensActions } from './tokens';
42
47
  actionRegistry.registerAll([
43
48
  ...addressesActions,
49
+ ...identityActions,
44
50
  ...paymentsActions,
45
51
  ...ordinalsActions,
46
52
  ...tokensActions,
47
53
  ...inscriptionsActions,
48
54
  ...locksActions,
49
55
  ...signingActions,
56
+ ...socialActions,
50
57
  ...sweepActions,
51
58
  ...opnsActions,
52
59
  ...syncActions,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kCAAkC;AAClC,OAAO,EAON,aAAa,GACb,MAAM,SAAS,CAAA;AAEhB,yBAAyB;AACzB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAA;AAEzE,mBAAmB;AACnB,cAAc,aAAa,CAAA;AAE3B,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAyD,MAAM,8BAA8B,CAAA;AAC1H,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE/D,kCAAkC;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AAEtB,gEAAgE;AAChE,cAAc,SAAS,CAAA;AAEvB,qBAAqB;AACrB,cAAc,QAAQ,CAAA;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,cAAc,CAAC,WAAW,CAAC;IAC1B,GAAG,gBAAgB;IACnB,GAAG,eAAe;IAClB,GAAG,eAAe;IAClB,GAAG,aAAa;IAChB,GAAG,mBAAmB;IACtB,GAAG,YAAY;IACf,GAAG,cAAc;IACjB,GAAG,YAAY;IACf,GAAG,WAAW;IACd,GAAG,WAAW;CACd,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kCAAkC;AAClC,OAAO,EAON,aAAa,GACb,MAAM,SAAS,CAAA;AAEhB,yBAAyB;AACzB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAA;AAEzE,mBAAmB;AACnB,cAAc,aAAa,CAAA;AAE3B,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EACN,oBAAoB,GAGpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACN,mBAAmB,EACnB,cAAc,GACd,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EACN,eAAe,GAIf,MAAM,yBAAyB,CAAA;AAEhC,kCAAkC;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AAEtB,gEAAgE;AAChE,cAAc,SAAS,CAAA;AAEvB,qBAAqB;AACrB,cAAc,QAAQ,CAAA;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,cAAc,CAAC,WAAW,CAAC;IAC1B,GAAG,gBAAgB;IACnB,GAAG,eAAe;IAClB,GAAG,eAAe;IAClB,GAAG,eAAe;IAClB,GAAG,aAAa;IAChB,GAAG,mBAAmB;IACtB,GAAG,YAAY;IACf,GAAG,cAAc;IACjB,GAAG,aAAa;IAChB,GAAG,YAAY;IACf,GAAG,WAAW;IACd,GAAG,WAAW;CACd,CAAC,CAAA"}