@1sat/actions 0.0.61 → 0.0.63

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.
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Balance Module
3
+ *
4
+ * Actions for querying wallet balance and payment UTXOs.
5
+ */
6
+ import type { Action } from '../types';
7
+ export interface Balance {
8
+ /** Balance in satoshis */
9
+ satoshis: number;
10
+ /** Balance in BSV */
11
+ bsv: number;
12
+ /** Balance in USD cents */
13
+ usdInCents: number;
14
+ }
15
+ export interface PaymentUtxo {
16
+ txid: string;
17
+ vout: number;
18
+ satoshis: number;
19
+ script: string;
20
+ }
21
+ /** Input for getBalance action (no required params) */
22
+ export type GetBalanceInput = Record<string, never>;
23
+ /**
24
+ * Get wallet balance with USD conversion.
25
+ */
26
+ export declare const getBalance: Action<GetBalanceInput, Balance>;
27
+ /** Input for getPaymentUtxos action (no required params) */
28
+ export type GetPaymentUtxosInput = Record<string, never>;
29
+ /**
30
+ * Get payment UTXOs for external use.
31
+ */
32
+ export declare const getPaymentUtxos: Action<GetPaymentUtxosInput, PaymentUtxo[]>;
33
+ /** Input for getExchangeRate action (no required params) */
34
+ export type GetExchangeRateInput = Record<string, never>;
35
+ /**
36
+ * Get current BSV/USD exchange rate.
37
+ */
38
+ export declare const getExchangeRate: Action<GetExchangeRateInput, number>;
39
+ /** All balance actions for registry */
40
+ export declare const balanceActions: (Action<GetBalanceInput, Balance> | Action<GetPaymentUtxosInput, PaymentUtxo[]> | Action<GetExchangeRateInput, number>)[];
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/balance/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAMtC,MAAM,WAAW,OAAO;IACvB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACd;AAyCD,uDAAuD;AACvD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAEnD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,eAAe,EAAE,OAAO,CAqBvD,CAAA;AAED,4DAA4D;AAC5D,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAExD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,oBAAoB,EAAE,WAAW,EAAE,CA0BvE,CAAA;AAED,4DAA4D;AAC5D,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAExD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAahE,CAAA;AAMD,uCAAuC;AACvC,eAAO,MAAM,cAAc,2HAAiD,CAAA"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Balance Module
3
+ *
4
+ * Actions for querying wallet balance and payment UTXOs.
5
+ */
6
+ import { EXCHANGE_RATE_CACHE_TTL, FUNDING_BASKET, WOC_MAINNET_URL, WOC_TESTNET_URL, } from '../constants';
7
+ // Module-level cache for exchange rate
8
+ let exchangeRateCache = null;
9
+ // ============================================================================
10
+ // Internal helpers
11
+ // ============================================================================
12
+ async function fetchExchangeRate(chain, wocApiKey) {
13
+ if (exchangeRateCache &&
14
+ Date.now() - exchangeRateCache.timestamp < EXCHANGE_RATE_CACHE_TTL) {
15
+ return exchangeRateCache.rate;
16
+ }
17
+ const baseUrl = chain === 'main' ? WOC_MAINNET_URL : WOC_TESTNET_URL;
18
+ const headers = {};
19
+ if (wocApiKey)
20
+ headers['woc-api-key'] = wocApiKey;
21
+ try {
22
+ const response = await fetch(`${baseUrl}/exchangerate`, { headers });
23
+ if (!response.ok)
24
+ throw new Error(`Failed to fetch: ${response.statusText}`);
25
+ const data = await response.json();
26
+ const rate = Number(data.rate.toFixed(2));
27
+ exchangeRateCache = { rate, timestamp: Date.now() };
28
+ return rate;
29
+ }
30
+ catch {
31
+ return exchangeRateCache?.rate ?? 0;
32
+ }
33
+ }
34
+ /**
35
+ * Get wallet balance with USD conversion.
36
+ */
37
+ export const getBalance = {
38
+ meta: {
39
+ name: 'getBalance',
40
+ description: 'Get wallet balance in satoshis, BSV, and USD cents',
41
+ category: 'balance',
42
+ inputSchema: {
43
+ type: 'object',
44
+ properties: {},
45
+ },
46
+ },
47
+ async execute(ctx) {
48
+ const exchangeRate = await fetchExchangeRate(ctx.chain, ctx.wocApiKey);
49
+ const result = await ctx.wallet.listOutputs({
50
+ basket: FUNDING_BASKET,
51
+ limit: 10000,
52
+ });
53
+ const satoshis = result.outputs.reduce((sum, o) => sum + o.satoshis, 0);
54
+ const bsv = satoshis / 100_000_000;
55
+ const usdInCents = Math.round(bsv * exchangeRate * 100);
56
+ return { satoshis, bsv, usdInCents };
57
+ },
58
+ };
59
+ /**
60
+ * Get payment UTXOs for external use.
61
+ */
62
+ export const getPaymentUtxos = {
63
+ meta: {
64
+ name: 'getPaymentUtxos',
65
+ description: 'Get payment UTXOs from the wallet for external use',
66
+ category: 'balance',
67
+ inputSchema: {
68
+ type: 'object',
69
+ properties: {},
70
+ },
71
+ },
72
+ async execute(ctx) {
73
+ const result = await ctx.wallet.listOutputs({
74
+ basket: FUNDING_BASKET,
75
+ include: 'locking scripts',
76
+ limit: 10000,
77
+ });
78
+ return result.outputs.map((o) => {
79
+ const [txid, voutStr] = o.outpoint.split('.');
80
+ return {
81
+ txid,
82
+ vout: Number.parseInt(voutStr, 10),
83
+ satoshis: o.satoshis,
84
+ script: o.lockingScript || '',
85
+ };
86
+ });
87
+ },
88
+ };
89
+ /**
90
+ * Get current BSV/USD exchange rate.
91
+ */
92
+ export const getExchangeRate = {
93
+ meta: {
94
+ name: 'getExchangeRate',
95
+ description: 'Get current BSV/USD exchange rate from WhatsOnChain',
96
+ category: 'balance',
97
+ inputSchema: {
98
+ type: 'object',
99
+ properties: {},
100
+ },
101
+ },
102
+ async execute(ctx) {
103
+ return fetchExchangeRate(ctx.chain, ctx.wocApiKey);
104
+ },
105
+ };
106
+ // ============================================================================
107
+ // Module exports
108
+ // ============================================================================
109
+ /** All balance actions for registry */
110
+ export const balanceActions = [getBalance, getPaymentUtxos, getExchangeRate];
111
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/balance/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Collections Module
3
+ *
4
+ * Actions for creating ordinals collections and collection items.
5
+ *
6
+ * A collection is a regular 1-sat ordinal inscription with MAP metadata
7
+ * where subType="collection" and subTypeData describes the collection
8
+ * (description, quantity, traits, rarity labels).
9
+ *
10
+ * A collection item is a regular 1-sat ordinal inscription with MAP metadata
11
+ * where subType="collectionItem" and subTypeData contains collectionId
12
+ * pointing to the parent collection's origin outpoint.
13
+ */
14
+ import type { CollectionItemAttachment, CollectionItemTrait, CollectionTraits, RarityLabels, Royalty } from '@1sat/types';
15
+ import type { Action, ActionOptions } from '../types';
16
+ export interface MintCollectionInput extends ActionOptions {
17
+ /** Base64 encoded collection artwork (icon/image) */
18
+ base64Content: string;
19
+ /** Content type (MIME type) of the artwork */
20
+ contentType: string;
21
+ /** Collection name */
22
+ name: string;
23
+ /** Collection description */
24
+ description: string;
25
+ /** Total number of items in the collection */
26
+ quantity: number;
27
+ /** Optional trait definitions */
28
+ traits?: CollectionTraits;
29
+ /** Optional rarity labels */
30
+ rarityLabels?: RarityLabels;
31
+ /** Optional royalty configuration */
32
+ royalties?: Royalty[];
33
+ /** MAP app field (default: "1sat-wallet") */
34
+ app?: string;
35
+ }
36
+ export interface MintCollectionOutput {
37
+ txid?: string;
38
+ /** Origin outpoint of the collection: "<txid>_0" */
39
+ collectionId?: string;
40
+ error?: string;
41
+ }
42
+ export interface MintCollectionItemInput extends ActionOptions {
43
+ /** Base64 encoded item artwork */
44
+ base64Content: string;
45
+ /** Content type (MIME type) of the artwork */
46
+ contentType: string;
47
+ /** Item name */
48
+ name: string;
49
+ /** Collection origin outpoint: "<txid>_<vout>" of the parent collection */
50
+ collectionId: string;
51
+ /** Optional mint number within the collection */
52
+ mintNumber?: number;
53
+ /** Optional rank within the collection */
54
+ rank?: number;
55
+ /** Optional item traits */
56
+ traits?: CollectionItemTrait[];
57
+ /** Optional file attachments */
58
+ attachments?: CollectionItemAttachment[];
59
+ /** MAP app field (default: "1sat-wallet") */
60
+ app?: string;
61
+ }
62
+ export interface MintCollectionItemOutput {
63
+ txid?: string;
64
+ error?: string;
65
+ }
66
+ /**
67
+ * Create a collection parent inscription.
68
+ */
69
+ export declare const mintCollection: Action<MintCollectionInput, MintCollectionOutput>;
70
+ /**
71
+ * Create a collection item inscription linked to a parent collection.
72
+ */
73
+ export declare const mintCollectionItem: Action<MintCollectionItemInput, MintCollectionItemOutput>;
74
+ /** All collection actions for registry */
75
+ export declare const collectionsActions: (Action<MintCollectionInput, MintCollectionOutput> | Action<MintCollectionItemInput, MintCollectionItemOutput>)[];
76
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EACX,wBAAwB,EAExB,mBAAmB,EAEnB,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,MAAM,aAAa,CAAA;AAQpB,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAOrD,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACzD,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAA;IACrB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAA;IACnB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAA;IAChB,iCAAiC;IACjC,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAA;IACrB,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,oBAAoB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,uBAAwB,SAAQ,aAAa;IAC7D,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAA;IACrB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAA;IACpB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC9B,gCAAgC;IAChC,WAAW,CAAC,EAAE,wBAAwB,EAAE,CAAA;IACxC,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,wBAAwB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAuGD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,CAuK3E,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CACtC,uBAAuB,EACvB,wBAAwB,CAuKxB,CAAA;AAMD,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB,mHAAuC,CAAA"}
@@ -0,0 +1,409 @@
1
+ /**
2
+ * Collections Module
3
+ *
4
+ * Actions for creating ordinals collections and collection items.
5
+ *
6
+ * A collection is a regular 1-sat ordinal inscription with MAP metadata
7
+ * where subType="collection" and subTypeData describes the collection
8
+ * (description, quantity, traits, rarity labels).
9
+ *
10
+ * A collection item is a regular 1-sat ordinal inscription with MAP metadata
11
+ * where subType="collectionItem" and subTypeData contains collectionId
12
+ * pointing to the parent collection's origin outpoint.
13
+ */
14
+ import { Inscription, MAP as MAPTemplate } from '@1sat/templates';
15
+ import { parseOutpoint } from '@1sat/utils';
16
+ import { P2PKH, PublicKey, Script, Utils } from '@bsv/sdk';
17
+ import { MAX_INSCRIPTION_BYTES, ONESAT_PROTOCOL, ORDINALS_BASKET, } from '../constants';
18
+ import { executeTrackedAction } from '../utils/createTrackedAction';
19
+ // ============================================================================
20
+ // Internal helpers
21
+ // ============================================================================
22
+ /**
23
+ * Build the 36-byte parent outpoint from a collectionId string.
24
+ * Format: 32 bytes txid (reversed to internal byte order) + 4 bytes vout (LE).
25
+ */
26
+ function collectionIdToParentBytes(collectionId) {
27
+ const { txid, vout } = parseOutpoint(collectionId);
28
+ const txidBytes = Utils.toArray(txid, 'hex').reverse();
29
+ const writer = new Utils.Writer();
30
+ writer.write(txidBytes);
31
+ writer.writeUInt32LE(vout);
32
+ return new Uint8Array(writer.toArray());
33
+ }
34
+ /**
35
+ * Build MAP metadata record for a collection parent.
36
+ * All values must be strings for MAP protocol.
37
+ */
38
+ function buildCollectionMap(input) {
39
+ const subTypeData = {
40
+ description: input.description,
41
+ quantity: input.quantity,
42
+ rarityLabels: input.rarityLabels ?? [],
43
+ traits: input.traits ?? {},
44
+ };
45
+ const map = {
46
+ app: input.app ?? '1sat-wallet',
47
+ type: 'ord',
48
+ name: input.name,
49
+ subType: 'collection',
50
+ subTypeData: JSON.stringify(subTypeData),
51
+ };
52
+ if (input.royalties && input.royalties.length > 0) {
53
+ map.royalties = JSON.stringify(input.royalties);
54
+ }
55
+ return map;
56
+ }
57
+ /**
58
+ * Build MAP metadata record for a collection item.
59
+ * All values must be strings for MAP protocol.
60
+ */
61
+ function buildCollectionItemMap(input) {
62
+ const subTypeData = {
63
+ collectionId: input.collectionId,
64
+ ...(input.mintNumber !== undefined && { mintNumber: input.mintNumber }),
65
+ ...(input.rank !== undefined && { rank: input.rank }),
66
+ ...(input.traits && input.traits.length > 0 && { traits: input.traits }),
67
+ ...(input.attachments &&
68
+ input.attachments.length > 0 && { attachments: input.attachments }),
69
+ };
70
+ return {
71
+ app: input.app ?? '1sat-wallet',
72
+ type: 'ord',
73
+ name: input.name,
74
+ subType: 'collectionItem',
75
+ subTypeData: JSON.stringify(subTypeData),
76
+ };
77
+ }
78
+ /**
79
+ * Build an inscription locking script with P2PKH + MAP suffix.
80
+ */
81
+ function buildInscriptionScript(address, base64Content, contentType, map, parent) {
82
+ const content = Utils.toArray(base64Content, 'base64');
83
+ const p2pkhScript = new P2PKH().lock(address);
84
+ // Build suffix: P2PKH + MAP
85
+ const suffix = new Script();
86
+ for (const chunk of p2pkhScript.chunks)
87
+ suffix.chunks.push(chunk);
88
+ const mapScript = MAPTemplate.set(map);
89
+ for (const chunk of mapScript.chunks)
90
+ suffix.chunks.push(chunk);
91
+ const inscription = Inscription.create(new Uint8Array(content), contentType, {
92
+ scriptSuffix: suffix,
93
+ parent,
94
+ });
95
+ return new Script(inscription.lock().chunks);
96
+ }
97
+ // ============================================================================
98
+ // Actions
99
+ // ============================================================================
100
+ /**
101
+ * Create a collection parent inscription.
102
+ */
103
+ export const mintCollection = {
104
+ meta: {
105
+ name: 'mintCollection',
106
+ description: 'Create a new ordinals collection with traits, rarity labels, and royalty configuration',
107
+ category: 'collections',
108
+ inputSchema: {
109
+ type: 'object',
110
+ properties: {
111
+ base64Content: {
112
+ type: 'string',
113
+ description: 'Base64 encoded collection artwork',
114
+ },
115
+ contentType: {
116
+ type: 'string',
117
+ description: 'Content type (MIME type)',
118
+ },
119
+ name: {
120
+ type: 'string',
121
+ description: 'Collection name',
122
+ },
123
+ description: {
124
+ type: 'string',
125
+ description: 'Collection description',
126
+ },
127
+ quantity: {
128
+ type: 'integer',
129
+ description: 'Total number of items in the collection',
130
+ },
131
+ traits: {
132
+ type: 'object',
133
+ description: 'Optional trait definitions',
134
+ },
135
+ rarityLabels: {
136
+ type: 'array',
137
+ description: 'Optional rarity labels',
138
+ },
139
+ royalties: {
140
+ type: 'array',
141
+ description: 'Optional royalty configuration',
142
+ },
143
+ app: {
144
+ type: 'string',
145
+ description: 'MAP app field (default: "1sat-wallet")',
146
+ },
147
+ },
148
+ required: [
149
+ 'base64Content',
150
+ 'contentType',
151
+ 'name',
152
+ 'description',
153
+ 'quantity',
154
+ ],
155
+ },
156
+ },
157
+ async execute(ctx, input) {
158
+ try {
159
+ const decoded = Utils.toArray(input.base64Content, 'base64');
160
+ if (decoded.length > MAX_INSCRIPTION_BYTES) {
161
+ return {
162
+ error: `Inscription data too large: ${decoded.length} bytes (max ${MAX_INSCRIPTION_BYTES})`,
163
+ };
164
+ }
165
+ if (input.quantity < 1) {
166
+ return { error: 'quantity-must-be-positive' };
167
+ }
168
+ const keyID = Date.now().toString();
169
+ const { publicKey } = await ctx.wallet.getPublicKey({
170
+ protocolID: ONESAT_PROTOCOL,
171
+ keyID,
172
+ counterparty: 'self',
173
+ forSelf: true,
174
+ });
175
+ const address = PublicKey.fromString(publicKey).toAddress();
176
+ const map = buildCollectionMap(input);
177
+ const lockingScript = buildInscriptionScript(address, input.base64Content, input.contentType, map);
178
+ const tags = [
179
+ `type:${input.contentType}`,
180
+ 'origin',
181
+ `name:${input.name.slice(0, 64)}`,
182
+ 'subType:collection',
183
+ ];
184
+ const result = await executeTrackedAction(ctx.wallet, {
185
+ description: `Create collection: ${input.name}`,
186
+ outputs: [
187
+ {
188
+ lockingScript: lockingScript.toHex(),
189
+ satoshis: 1,
190
+ outputDescription: 'Collection inscription',
191
+ basket: ORDINALS_BASKET,
192
+ tags,
193
+ customInstructions: JSON.stringify({
194
+ protocolID: ONESAT_PROTOCOL,
195
+ keyID,
196
+ name: input.name.slice(0, 64),
197
+ }),
198
+ },
199
+ ],
200
+ options: {
201
+ acceptDelayedBroadcast: false,
202
+ randomizeOutputs: false,
203
+ },
204
+ }, input.fundingProvider);
205
+ if (!result.txid) {
206
+ return { error: 'no-txid-returned' };
207
+ }
208
+ const collectionId = `${result.txid}_0`;
209
+ if (ctx.debug && ctx.log) {
210
+ ctx.log({
211
+ timestamp: new Date().toISOString(),
212
+ action: 'mintCollection',
213
+ input: {
214
+ contentType: input.contentType,
215
+ name: input.name,
216
+ quantity: input.quantity,
217
+ },
218
+ txid: result.txid,
219
+ rawtx: result.tx ? Utils.toHex(result.tx) : undefined,
220
+ outputs: [
221
+ {
222
+ index: 0,
223
+ protocolID: ONESAT_PROTOCOL,
224
+ keyID,
225
+ basket: ORDINALS_BASKET,
226
+ satoshis: 1,
227
+ },
228
+ ],
229
+ });
230
+ }
231
+ return {
232
+ txid: result.txid,
233
+ collectionId,
234
+ };
235
+ }
236
+ catch (error) {
237
+ console.error('[mintCollection]', error);
238
+ if (ctx.debug && ctx.log) {
239
+ ctx.log({
240
+ timestamp: new Date().toISOString(),
241
+ action: 'mintCollection',
242
+ input: { name: input.name },
243
+ error: error instanceof Error ? error.message : 'unknown-error',
244
+ });
245
+ }
246
+ return {
247
+ error: error instanceof Error ? error.message : 'unknown-error',
248
+ };
249
+ }
250
+ },
251
+ };
252
+ /**
253
+ * Create a collection item inscription linked to a parent collection.
254
+ */
255
+ export const mintCollectionItem = {
256
+ meta: {
257
+ name: 'mintCollectionItem',
258
+ description: 'Create a collection item inscription linked to a parent collection via collectionId',
259
+ category: 'collections',
260
+ inputSchema: {
261
+ type: 'object',
262
+ properties: {
263
+ base64Content: {
264
+ type: 'string',
265
+ description: 'Base64 encoded item artwork',
266
+ },
267
+ contentType: {
268
+ type: 'string',
269
+ description: 'Content type (MIME type)',
270
+ },
271
+ name: {
272
+ type: 'string',
273
+ description: 'Item name',
274
+ },
275
+ collectionId: {
276
+ type: 'string',
277
+ description: 'Collection origin outpoint: "<txid>_<vout>" of the parent collection',
278
+ },
279
+ mintNumber: {
280
+ type: 'integer',
281
+ description: 'Optional mint number within the collection',
282
+ },
283
+ rank: {
284
+ type: 'integer',
285
+ description: 'Optional rank within the collection',
286
+ },
287
+ traits: {
288
+ type: 'array',
289
+ description: 'Optional item traits',
290
+ },
291
+ attachments: {
292
+ type: 'array',
293
+ description: 'Optional file attachments',
294
+ },
295
+ app: {
296
+ type: 'string',
297
+ description: 'MAP app field (default: "1sat-wallet")',
298
+ },
299
+ },
300
+ required: ['base64Content', 'contentType', 'name', 'collectionId'],
301
+ },
302
+ },
303
+ async execute(ctx, input) {
304
+ try {
305
+ const decoded = Utils.toArray(input.base64Content, 'base64');
306
+ if (decoded.length > MAX_INSCRIPTION_BYTES) {
307
+ return {
308
+ error: `Inscription data too large: ${decoded.length} bytes (max ${MAX_INSCRIPTION_BYTES})`,
309
+ };
310
+ }
311
+ // Validate collectionId format
312
+ let parentBytes;
313
+ try {
314
+ parentBytes = collectionIdToParentBytes(input.collectionId);
315
+ }
316
+ catch {
317
+ return { error: `Invalid collectionId format: ${input.collectionId}` };
318
+ }
319
+ const keyID = Date.now().toString();
320
+ const { publicKey } = await ctx.wallet.getPublicKey({
321
+ protocolID: ONESAT_PROTOCOL,
322
+ keyID,
323
+ counterparty: 'self',
324
+ forSelf: true,
325
+ });
326
+ const address = PublicKey.fromString(publicKey).toAddress();
327
+ const map = buildCollectionItemMap(input);
328
+ const lockingScript = buildInscriptionScript(address, input.base64Content, input.contentType, map, parentBytes);
329
+ const tags = [
330
+ `type:${input.contentType}`,
331
+ 'origin',
332
+ `name:${input.name.slice(0, 64)}`,
333
+ 'subType:collectionItem',
334
+ `collectionId:${input.collectionId}`,
335
+ ];
336
+ const result = await executeTrackedAction(ctx.wallet, {
337
+ description: `Create collection item: ${input.name}`,
338
+ outputs: [
339
+ {
340
+ lockingScript: lockingScript.toHex(),
341
+ satoshis: 1,
342
+ outputDescription: 'Collection item inscription',
343
+ basket: ORDINALS_BASKET,
344
+ tags,
345
+ customInstructions: JSON.stringify({
346
+ protocolID: ONESAT_PROTOCOL,
347
+ keyID,
348
+ name: input.name.slice(0, 64),
349
+ }),
350
+ },
351
+ ],
352
+ options: {
353
+ acceptDelayedBroadcast: false,
354
+ randomizeOutputs: false,
355
+ },
356
+ }, input.fundingProvider);
357
+ if (!result.txid) {
358
+ return { error: 'no-txid-returned' };
359
+ }
360
+ if (ctx.debug && ctx.log) {
361
+ ctx.log({
362
+ timestamp: new Date().toISOString(),
363
+ action: 'mintCollectionItem',
364
+ input: {
365
+ contentType: input.contentType,
366
+ name: input.name,
367
+ collectionId: input.collectionId,
368
+ mintNumber: input.mintNumber,
369
+ },
370
+ txid: result.txid,
371
+ rawtx: result.tx ? Utils.toHex(result.tx) : undefined,
372
+ outputs: [
373
+ {
374
+ index: 0,
375
+ protocolID: ONESAT_PROTOCOL,
376
+ keyID,
377
+ basket: ORDINALS_BASKET,
378
+ satoshis: 1,
379
+ },
380
+ ],
381
+ });
382
+ }
383
+ return { txid: result.txid };
384
+ }
385
+ catch (error) {
386
+ console.error('[mintCollectionItem]', error);
387
+ if (ctx.debug && ctx.log) {
388
+ ctx.log({
389
+ timestamp: new Date().toISOString(),
390
+ action: 'mintCollectionItem',
391
+ input: {
392
+ name: input.name,
393
+ collectionId: input.collectionId,
394
+ },
395
+ error: error instanceof Error ? error.message : 'unknown-error',
396
+ });
397
+ }
398
+ return {
399
+ error: error instanceof Error ? error.message : 'unknown-error',
400
+ };
401
+ }
402
+ },
403
+ };
404
+ // ============================================================================
405
+ // Module exports
406
+ // ============================================================================
407
+ /** All collection actions for registry */
408
+ export const collectionsActions = [mintCollection, mintCollectionItem];
409
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export type { FundingProvider, FundingResult, } from './funding';
14
14
  export { resolveBeef, extractIdTag } from './utils/resolveBeef';
15
15
  export { internalizeBeef, type InternalizeBeefOptions, type InternalizeBeefResult, type OutputDerivation, } from './utils/internalizeBeef';
16
16
  export * from './addresses';
17
+ export * from './collections';
17
18
  export * from './payments';
18
19
  export * from './ordinals';
19
20
  export * from './tokens';
@@ -25,5 +26,6 @@ export * from './identity';
25
26
  export * from './opns';
26
27
  export * from './sweep';
27
28
  export * from './sync';
29
+ export * from './registry';
28
30
  export type { CreateActionArgs, CreateActionInput, CreateActionOutput, CreateActionResult, ListOutputsArgs, ListOutputsResult, WalletInterface, WalletOutput, } from '@bsv/sdk';
29
31
  //# sourceMappingURL=index.d.ts.map
@@ -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,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,aAAa,GACb,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAGhF,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,oBAAoB,EACpB,cAAc,GACd,MAAM,6BAA6B,CAAA;AAGpC,YAAY,EACX,eAAe,EACf,aAAa,GACb,MAAM,WAAW,CAAA;AAClB,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"}
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,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,aAAa,GACb,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAGhF,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,oBAAoB,EACpB,cAAc,GACd,MAAM,6BAA6B,CAAA;AAGpC,YAAY,EACX,eAAe,EACf,aAAa,GACb,MAAM,WAAW,CAAA;AAClB,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,eAAe,CAAA;AAC7B,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;AAGtB,cAAc,YAAY,CAAA;AAkC1B,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
@@ -18,6 +18,7 @@ export { resolveBeef, extractIdTag } from './utils/resolveBeef';
18
18
  export { internalizeBeef, } from './utils/internalizeBeef';
19
19
  // Export module actions and types
20
20
  export * from './addresses';
21
+ export * from './collections';
21
22
  export * from './payments';
22
23
  export * from './ordinals';
23
24
  export * from './tokens';
@@ -31,14 +32,17 @@ export * from './opns';
31
32
  export * from './sweep';
32
33
  // Export sync module
33
34
  export * from './sync';
35
+ // Export registry module (on-chain package builder)
36
+ export * from './registry';
37
+ import { actionRegistry } from './action-registry';
34
38
  import { addressesActions } from './addresses';
39
+ import { collectionsActions } from './collections';
35
40
  import { identityActions } from './identity';
36
41
  import { inscriptionsActions } from './inscriptions';
37
42
  import { locksActions } from './locks';
38
43
  import { opnsActions } from './opns';
39
44
  import { ordinalsActions } from './ordinals';
40
45
  import { paymentsActions } from './payments';
41
- import { actionRegistry } from './action-registry';
42
46
  import { signingActions } from './signing';
43
47
  import { socialActions } from './social';
44
48
  import { sweepActions } from './sweep';
@@ -46,6 +50,7 @@ import { syncActions } from './sync';
46
50
  import { tokensActions } from './tokens';
47
51
  actionRegistry.registerAll([
48
52
  ...addressesActions,
53
+ ...collectionsActions,
49
54
  ...identityActions,
50
55
  ...paymentsActions,
51
56
  ...ordinalsActions,
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,EAQN,aAAa,GACb,MAAM,SAAS,CAAA;AAEhB,yBAAyB;AACzB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAgB,MAAM,mBAAmB,CAAA;AAEhF,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,oBAAoB,EACpB,cAAc,GACd,MAAM,6BAA6B,CAAA;AAOpC,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,mBAAmB,CAAA;AAClD,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kCAAkC;AAClC,OAAO,EAQN,aAAa,GACb,MAAM,SAAS,CAAA;AAEhB,yBAAyB;AACzB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAgB,MAAM,mBAAmB,CAAA;AAEhF,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,oBAAoB,EACpB,cAAc,GACd,MAAM,6BAA6B,CAAA;AAOpC,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,eAAe,CAAA;AAC7B,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,oDAAoD;AACpD,cAAc,YAAY,CAAA;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,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,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,kBAAkB;IACrB,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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Registry Module
3
+ *
4
+ * Shared infrastructure for building on-chain registry packages.
5
+ * Used by clawnet (skills, agents), theme-token (fonts, themes),
6
+ * and any publisher creating ord-fs/json registry items.
7
+ */
8
+ export { buildPackageOutputs, detectContentType } from './package-tx';
9
+ export type { PackageBroadcastResult, PackageFile, PackageMapMetadata, PackageTxOutput, PackageTxResult, } from './types';
10
+ export { MANIFEST_CONTENT_TYPE, REGISTRY_TYPE_SET, REGISTRY_TYPES, type RegistryType, } from './constants';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAErE,YAAY,EACX,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,eAAe,GACf,MAAM,SAAS,CAAA;AAEhB,OAAO,EACN,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,KAAK,YAAY,GACjB,MAAM,aAAa,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Registry Module
3
+ *
4
+ * Shared infrastructure for building on-chain registry packages.
5
+ * Used by clawnet (skills, agents), theme-token (fonts, themes),
6
+ * and any publisher creating ord-fs/json registry items.
7
+ */
8
+ export { buildPackageOutputs, detectContentType } from './package-tx';
9
+ export { MANIFEST_CONTENT_TYPE, REGISTRY_TYPE_SET, REGISTRY_TYPES, } from './constants';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAUrE,OAAO,EACN,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,GAEd,MAAM,aAAa,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { type PrivateKey } from '@bsv/sdk';
2
+ import type { PackageFile, PackageMapMetadata, PackageTxResult } from './types';
3
+ /**
4
+ * Build ordinal inscription outputs for a package publish transaction.
5
+ *
6
+ * Each file becomes a 1-sat inscription output. The manifest (ord-fs/json)
7
+ * is the LAST output and carries the MAP metadata + AIP signature as a
8
+ * script suffix after the inscription envelope.
9
+ *
10
+ * Output layout:
11
+ * [0..N-1] file inscriptions (1 sat each)
12
+ * [N] manifest inscription with MAP + AIP suffix (1 sat, tracked ordinal)
13
+ */
14
+ export declare function buildPackageOutputs(files: PackageFile[], metadata: PackageMapMetadata, privateKey: PrivateKey): Promise<PackageTxResult>;
15
+ /**
16
+ * Detect MIME content type from a file path extension.
17
+ */
18
+ export declare function detectContentType(filePath: string): string;
19
+ //# sourceMappingURL=package-tx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-tx.d.ts","sourceRoot":"","sources":["../../src/registry/package-tx.ts"],"names":[],"mappings":"AAQA,OAAO,EAAS,KAAK,UAAU,EAAiB,MAAM,UAAU,CAAA;AAEhE,OAAO,KAAK,EACX,WAAW,EACX,kBAAkB,EAElB,eAAe,EACf,MAAM,SAAS,CAAA;AA0BhB;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACxC,KAAK,EAAE,WAAW,EAAE,EACpB,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,GACpB,OAAO,CAAC,eAAe,CAAC,CA0L1B;AA8CD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA0B1D"}
@@ -0,0 +1,267 @@
1
+ import { AIP, AIP_PREFIX, Inscription, MAP, MAP_PREFIX, PrivateKeySigner, } from '@1sat/templates';
2
+ import { P2PKH, Script, Utils } from '@bsv/sdk';
3
+ import { MANIFEST_CONTENT_TYPE } from './constants';
4
+ /**
5
+ * Known fields on PackageMapMetadata that are handled explicitly
6
+ * when building MAP metadata. Any other string keys on the metadata
7
+ * object are treated as extra MAP fields (e.g. font.family).
8
+ */
9
+ const KNOWN_METADATA_FIELDS = new Set([
10
+ 'app',
11
+ 'type',
12
+ 'name',
13
+ 'version',
14
+ 'description',
15
+ 'language',
16
+ 'homepage',
17
+ 'prev',
18
+ 'opns.name',
19
+ 'opns.outpoint',
20
+ 'title',
21
+ 'author',
22
+ 'dependencies',
23
+ 'devDependencies',
24
+ 'registryDependencies',
25
+ 'categories',
26
+ ]);
27
+ /**
28
+ * Build ordinal inscription outputs for a package publish transaction.
29
+ *
30
+ * Each file becomes a 1-sat inscription output. The manifest (ord-fs/json)
31
+ * is the LAST output and carries the MAP metadata + AIP signature as a
32
+ * script suffix after the inscription envelope.
33
+ *
34
+ * Output layout:
35
+ * [0..N-1] file inscriptions (1 sat each)
36
+ * [N] manifest inscription with MAP + AIP suffix (1 sat, tracked ordinal)
37
+ */
38
+ export async function buildPackageOutputs(files, metadata, privateKey) {
39
+ const outputs = [];
40
+ // P2PKH locking script derived from the signing key -- used as the
41
+ // scriptPrefix on every inscription so the outputs are spendable.
42
+ const p2pkhPrefix = new P2PKH().lock(privateKey.toAddress());
43
+ // -------------------------------------------------------------------
44
+ // 1. File inscription outputs
45
+ // -------------------------------------------------------------------
46
+ for (const file of files) {
47
+ const inscription = Inscription.create(file.content, file.contentType, {
48
+ scriptPrefix: p2pkhPrefix,
49
+ });
50
+ const lockingScript = inscription.lock();
51
+ outputs.push({
52
+ lockingScriptHex: Utils.toHex(lockingScript.toBinary()),
53
+ satoshis: 1,
54
+ description: `file: ${file.path}`,
55
+ isManifest: false,
56
+ });
57
+ }
58
+ // -------------------------------------------------------------------
59
+ // 2. Build the ord-fs directory tree
60
+ // Root-level files get `_N` references. Files in subdirectories
61
+ // get their own ord-fs/json manifest inscriptions so ORDFS can
62
+ // traverse nested directories and unchanged branches can be
63
+ // re-referenced in version updates.
64
+ // -------------------------------------------------------------------
65
+ // Group files by their top-level directory
66
+ const rootFiles = [];
67
+ const subdirs = new Map();
68
+ for (let i = 0; i < files.length; i++) {
69
+ const parts = files[i].path.split('/');
70
+ if (parts.length === 1) {
71
+ // Root-level file
72
+ rootFiles.push({ name: parts[0], vout: i });
73
+ }
74
+ else {
75
+ // Nested file -- group by first directory segment
76
+ const dir = parts[0];
77
+ const rest = parts.slice(1).join('/');
78
+ if (!subdirs.has(dir))
79
+ subdirs.set(dir, []);
80
+ subdirs.get(dir).push({ name: rest, vout: i });
81
+ }
82
+ }
83
+ // Create subdirectory manifest inscriptions (one per subdirectory)
84
+ const subdirVouts = new Map();
85
+ for (const [dirName, entries] of subdirs) {
86
+ const subdirManifest = {};
87
+ for (const entry of entries) {
88
+ subdirManifest[entry.name] = `_${entry.vout}`;
89
+ }
90
+ const subdirBytes = new Uint8Array(Utils.toArray(JSON.stringify(subdirManifest), 'utf8'));
91
+ const subdirInscription = Inscription.create(subdirBytes, MANIFEST_CONTENT_TYPE, { scriptPrefix: p2pkhPrefix });
92
+ const subdirVout = outputs.length;
93
+ outputs.push({
94
+ lockingScriptHex: Utils.toHex(subdirInscription.lock().toBinary()),
95
+ satoshis: 1,
96
+ description: `dir: ${dirName}/`,
97
+ isManifest: false,
98
+ });
99
+ subdirVouts.set(dirName, subdirVout);
100
+ }
101
+ // Build root manifest -- references root files and subdirectory manifests
102
+ const manifest = {};
103
+ for (const entry of rootFiles) {
104
+ manifest[entry.name] = `_${entry.vout}`;
105
+ }
106
+ for (const [dirName, vout] of subdirVouts) {
107
+ manifest[dirName] = `_${vout}`;
108
+ }
109
+ const manifestBytes = new Uint8Array(Utils.toArray(JSON.stringify(manifest), 'utf8'));
110
+ // -------------------------------------------------------------------
111
+ // 3. MAP metadata -- build protocol chunks for the suffix
112
+ // -------------------------------------------------------------------
113
+ const mapFields = {
114
+ app: metadata.app,
115
+ type: metadata.type,
116
+ name: metadata.name,
117
+ version: metadata.version,
118
+ description: metadata.description,
119
+ };
120
+ if (metadata.language)
121
+ mapFields.language = metadata.language;
122
+ if (metadata.homepage)
123
+ mapFields.homepage = metadata.homepage;
124
+ if (metadata.prev)
125
+ mapFields.prev = metadata.prev;
126
+ if (metadata['opns.name'])
127
+ mapFields['opns.name'] = metadata['opns.name'];
128
+ if (metadata['opns.outpoint'])
129
+ mapFields['opns.outpoint'] = metadata['opns.outpoint'];
130
+ if (metadata.title)
131
+ mapFields.title = metadata.title;
132
+ if (metadata.author)
133
+ mapFields.author = metadata.author;
134
+ if (metadata.dependencies)
135
+ mapFields.dependencies = metadata.dependencies;
136
+ if (metadata.devDependencies)
137
+ mapFields.devDependencies = metadata.devDependencies;
138
+ if (metadata.registryDependencies)
139
+ mapFields.registryDependencies = metadata.registryDependencies;
140
+ if (metadata.categories)
141
+ mapFields.categories = metadata.categories;
142
+ // Include any extra MAP fields from the index signature (e.g. font.family)
143
+ for (const key of Object.keys(metadata)) {
144
+ if (!KNOWN_METADATA_FIELDS.has(key) && metadata[key] != null) {
145
+ mapFields[key] = metadata[key];
146
+ }
147
+ }
148
+ const mapScript = MAP.set(mapFields);
149
+ // MAP.set() returns an OP_RETURN | MAP_PREFIX | data locking script.
150
+ // We need just the data chunks (skip OP_RETURN and MAP_PREFIX pushdata).
151
+ const mapDataChunks = mapScript.chunks.slice(2);
152
+ const mapDataScript = new Script(mapDataChunks);
153
+ const mapProtocol = {
154
+ protocol: MAP_PREFIX,
155
+ script: mapDataScript.toBinary(),
156
+ pos: 0,
157
+ };
158
+ // -------------------------------------------------------------------
159
+ // 4. AIP signature -- signs MAP protocol data so authorship is verifiable
160
+ // -------------------------------------------------------------------
161
+ const signatureData = [];
162
+ signatureData.push(...Utils.toArray(mapProtocol.protocol, 'utf8'));
163
+ signatureData.push(...mapProtocol.script);
164
+ signatureData.push(0x7c); // pipe separator
165
+ const aipData = await AIP.sign(signatureData, new PrivateKeySigner(privateKey));
166
+ const aipScript = aipData.lock();
167
+ // AIP.lock() wraps in BitCom (OP_RETURN | AIP_PREFIX | data).
168
+ // Extract only the data chunks after OP_RETURN and AIP_PREFIX.
169
+ const aipDataChunks = aipScript.chunks.slice(2);
170
+ const aipDataScript = new Script(aipDataChunks);
171
+ const aipProtocol = {
172
+ protocol: AIP_PREFIX,
173
+ script: aipDataScript.toBinary(),
174
+ pos: 1,
175
+ };
176
+ // -------------------------------------------------------------------
177
+ // 5. Compose the suffix script: OP_RETURN MAP_PREFIX <map-data> | AIP_PREFIX <aip-data>
178
+ // This goes AFTER the inscription envelope's OP_ENDIF.
179
+ // -------------------------------------------------------------------
180
+ const suffix = buildBitComSuffix([mapProtocol, aipProtocol]);
181
+ // -------------------------------------------------------------------
182
+ // 6. Create the manifest inscription with the MAP+AIP suffix
183
+ // -------------------------------------------------------------------
184
+ const manifestInscription = Inscription.create(manifestBytes, MANIFEST_CONTENT_TYPE, {
185
+ scriptPrefix: p2pkhPrefix,
186
+ scriptSuffix: suffix,
187
+ });
188
+ const manifestLockingScript = manifestInscription.lock();
189
+ const manifestVout = outputs.length;
190
+ outputs.push({
191
+ lockingScriptHex: Utils.toHex(manifestLockingScript.toBinary()),
192
+ satoshis: 1,
193
+ description: 'manifest (ord-fs/json)',
194
+ isManifest: true,
195
+ });
196
+ return {
197
+ outputs,
198
+ manifestVout,
199
+ };
200
+ }
201
+ /**
202
+ * Build an OP_RETURN + piped-protocol suffix script from protocol descriptors.
203
+ *
204
+ * Produces: OP_RETURN <proto1_prefix> <proto1_data> "|" <proto2_prefix> <proto2_data> ...
205
+ *
206
+ * This is the same format BitCom.lock() produces, but as a raw Script
207
+ * suitable for use as an Inscription scriptSuffix.
208
+ */
209
+ function buildBitComSuffix(protocols) {
210
+ const script = new Script();
211
+ // OP_RETURN marks the start of the data section
212
+ script.writeOpCode(0x6a); // OP_RETURN
213
+ for (let i = 0; i < protocols.length; i++) {
214
+ const proto = protocols[i];
215
+ // Protocol identifier as pushdata
216
+ script.writeBin(Utils.toArray(proto.protocol, 'utf8'));
217
+ // Protocol data -- re-parse into chunks and append individually
218
+ // so that pushdata opcodes are preserved correctly.
219
+ if (proto.script.length > 0) {
220
+ const protoScript = Script.fromBinary(proto.script);
221
+ for (const chunk of protoScript.chunks) {
222
+ if (chunk.data != null) {
223
+ script.writeBin(chunk.data);
224
+ }
225
+ else {
226
+ script.writeOpCode(chunk.op);
227
+ }
228
+ }
229
+ }
230
+ // Pipe delimiter between protocols (not after the last one)
231
+ if (i < protocols.length - 1) {
232
+ script.writeBin(Utils.toArray('|', 'utf8'));
233
+ }
234
+ }
235
+ return script;
236
+ }
237
+ /**
238
+ * Detect MIME content type from a file path extension.
239
+ */
240
+ export function detectContentType(filePath) {
241
+ const ext = filePath.split('.').pop()?.toLowerCase() ?? '';
242
+ const mimeTypes = {
243
+ md: 'text/markdown',
244
+ txt: 'text/plain',
245
+ json: 'application/json',
246
+ js: 'application/javascript',
247
+ ts: 'application/typescript',
248
+ tsx: 'application/typescript',
249
+ jsx: 'application/javascript',
250
+ css: 'text/css',
251
+ html: 'text/html',
252
+ xml: 'text/xml',
253
+ yaml: 'text/yaml',
254
+ yml: 'text/yaml',
255
+ svg: 'image/svg+xml',
256
+ png: 'image/png',
257
+ jpg: 'image/jpeg',
258
+ jpeg: 'image/jpeg',
259
+ gif: 'image/gif',
260
+ webp: 'image/webp',
261
+ woff2: 'font/woff2',
262
+ woff: 'font/woff',
263
+ ttf: 'font/ttf',
264
+ };
265
+ return mimeTypes[ext] ?? 'application/octet-stream';
266
+ }
267
+ //# sourceMappingURL=package-tx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-tx.js","sourceRoot":"","sources":["../../src/registry/package-tx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Action registry for runtime discovery and MCP integration.
3
+ */
4
+ import type { Action, ActionCategory } from './types';
5
+ type AnyAction = Action<any, any>;
6
+ /**
7
+ * MCP-compatible tool definition.
8
+ */
9
+ export interface McpTool {
10
+ name: string;
11
+ description: string;
12
+ inputSchema: object;
13
+ }
14
+ /**
15
+ * Registry for collecting and discovering actions at runtime.
16
+ */
17
+ export declare class ActionRegistry {
18
+ private actions;
19
+ /**
20
+ * Register an action.
21
+ */
22
+ register(action: AnyAction): void;
23
+ /**
24
+ * Register multiple actions.
25
+ */
26
+ registerAll(actions: AnyAction[]): void;
27
+ /**
28
+ * Get an action by name.
29
+ */
30
+ get(name: string): AnyAction | undefined;
31
+ /**
32
+ * Check if an action exists.
33
+ */
34
+ has(name: string): boolean;
35
+ /**
36
+ * List all registered actions.
37
+ */
38
+ list(): Action[];
39
+ /**
40
+ * List actions by category.
41
+ */
42
+ listByCategory(category: ActionCategory): Action[];
43
+ /**
44
+ * Get action names.
45
+ */
46
+ names(): string[];
47
+ /**
48
+ * Convert to MCP-compatible tool list.
49
+ * Prefixes names with "1sat__" for namespace isolation.
50
+ */
51
+ toMcpTools(): McpTool[];
52
+ /**
53
+ * Number of registered actions.
54
+ */
55
+ get size(): number;
56
+ }
57
+ /**
58
+ * Global action registry singleton.
59
+ */
60
+ export declare const actionRegistry: ActionRegistry;
61
+ export {};
62
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGrD,KAAK,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAEjC;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,qBAAa,cAAc;IAC1B,OAAO,CAAC,OAAO,CAA+B;IAE9C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAIjC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;IAMvC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIxC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,EAAE;IAIlD;;OAEG;IACH,KAAK,IAAI,MAAM,EAAE;IAIjB;;;OAGG;IACH,UAAU,IAAI,OAAO,EAAE;IAQvB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACD;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAA"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Action registry for runtime discovery and MCP integration.
3
+ */
4
+ /**
5
+ * Registry for collecting and discovering actions at runtime.
6
+ */
7
+ export class ActionRegistry {
8
+ actions = new Map();
9
+ /**
10
+ * Register an action.
11
+ */
12
+ register(action) {
13
+ this.actions.set(action.meta.name, action);
14
+ }
15
+ /**
16
+ * Register multiple actions.
17
+ */
18
+ registerAll(actions) {
19
+ for (const action of actions) {
20
+ this.register(action);
21
+ }
22
+ }
23
+ /**
24
+ * Get an action by name.
25
+ */
26
+ get(name) {
27
+ return this.actions.get(name);
28
+ }
29
+ /**
30
+ * Check if an action exists.
31
+ */
32
+ has(name) {
33
+ return this.actions.has(name);
34
+ }
35
+ /**
36
+ * List all registered actions.
37
+ */
38
+ list() {
39
+ return Array.from(this.actions.values());
40
+ }
41
+ /**
42
+ * List actions by category.
43
+ */
44
+ listByCategory(category) {
45
+ return this.list().filter((a) => a.meta.category === category);
46
+ }
47
+ /**
48
+ * Get action names.
49
+ */
50
+ names() {
51
+ return Array.from(this.actions.keys());
52
+ }
53
+ /**
54
+ * Convert to MCP-compatible tool list.
55
+ * Prefixes names with "1sat__" for namespace isolation.
56
+ */
57
+ toMcpTools() {
58
+ return this.list().map((action) => ({
59
+ name: `1sat__${action.meta.name}`,
60
+ description: action.meta.description,
61
+ inputSchema: action.meta.inputSchema,
62
+ }));
63
+ }
64
+ /**
65
+ * Number of registered actions.
66
+ */
67
+ get size() {
68
+ return this.actions.size;
69
+ }
70
+ }
71
+ /**
72
+ * Global action registry singleton.
73
+ */
74
+ export const actionRegistry = new ActionRegistry();
75
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH;;GAEG;AACH,MAAM,OAAO,cAAc;IAClB,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAA;IAE9C;;OAEG;IACH,QAAQ,CAAC,MAAiB;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAoB;QAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACtB,CAAC;IACF,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAwB;QACtC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;IAC/D,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC;IAED;;;OAGG;IACH,UAAU;QACT,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;YACjC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACpC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;SACpC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;IACzB,CAAC;CACD;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAA"}
package/dist/types.d.ts CHANGED
@@ -68,7 +68,7 @@ export interface JsonSchemaProperty {
68
68
  /**
69
69
  * Action category for grouping related operations.
70
70
  */
71
- export type ActionCategory = 'addresses' | 'balance' | 'payments' | 'ordinals' | 'tokens' | 'inscriptions' | 'locks' | 'signing' | 'sweep' | 'opns' | 'social' | 'identity' | 'sync';
71
+ export type ActionCategory = 'addresses' | 'balance' | 'collections' | 'payments' | 'ordinals' | 'tokens' | 'inscriptions' | 'locks' | 'signing' | 'sweep' | 'opns' | 'social' | 'identity' | 'sync';
72
72
  /**
73
73
  * Metadata describing an action for AI agents and tooling.
74
74
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuHH;;GAEG;AACH,MAAM,UAAU,aAAa,CAC5B,MAAuB,EACvB,OAOC;IAED,OAAO;QACN,MAAM;QACN,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,MAAM;QAC/B,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,KAAK,EAAE,OAAO,EAAE,KAAK;QACrB,GAAG,EAAE,OAAO,EAAE,GAAG;KACjB,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwHH;;GAEG;AACH,MAAM,UAAU,aAAa,CAC5B,MAAuB,EACvB,OAOC;IAED,OAAO;QACN,MAAM;QACN,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,MAAM;QAC/B,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,KAAK,EAAE,OAAO,EAAE,KAAK;QACrB,GAAG,EAAE,OAAO,EAAE,GAAG;KACjB,CAAA;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/actions",
3
- "version": "0.0.61",
3
+ "version": "0.0.63",
4
4
  "description": "Action definitions for the 1Sat SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,7 +25,7 @@
25
25
  "@1sat/types": "0.0.14",
26
26
  "@1sat/utils": "0.0.12",
27
27
  "@1sat/wallet": "0.0.34",
28
- "@1sat/templates": "0.0.3"
28
+ "@1sat/templates": "0.0.4"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "@bsv/sdk": "^2.0.6"