@1sat/templates 0.0.9 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bsv21/bsv21.d.ts +61 -21
- package/dist/bsv21/bsv21.d.ts.map +1 -1
- package/dist/bsv21/bsv21.js +149 -72
- package/dist/bsv21/bsv21.js.map +1 -1
- package/dist/cosign/cosign.d.ts +49 -1
- package/dist/cosign/cosign.d.ts.map +1 -1
- package/dist/cosign/cosign.js +88 -1
- package/dist/cosign/cosign.js.map +1 -1
- package/package.json +42 -42
package/dist/bsv21/bsv21.d.ts
CHANGED
|
@@ -4,36 +4,43 @@ import Inscription from '../inscription/inscription.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* BSV-21 token operation types
|
|
6
6
|
*/
|
|
7
|
-
export type BSV21Operation = 'deploy+mint' | 'transfer' | 'burn';
|
|
7
|
+
export type BSV21Operation = 'deploy+mint' | 'deploy+auth' | 'mint' | 'auth' | 'transfer' | 'burn';
|
|
8
8
|
/**
|
|
9
|
-
* BSV-21 token data structure for JSON payload
|
|
9
|
+
* BSV-21 token data structure for JSON payload.
|
|
10
|
+
*
|
|
11
|
+
* `amt` is required for `deploy+mint`, `mint`, `transfer`, `burn`.
|
|
12
|
+
* `amt` MUST be absent for `deploy+auth` and `auth` (capability-only ops).
|
|
10
13
|
*/
|
|
11
|
-
export interface BSV21TokenData extends TokenInscription {
|
|
14
|
+
export interface BSV21TokenData extends Omit<TokenInscription, 'amt'> {
|
|
12
15
|
/** Token operation */
|
|
13
16
|
op: BSV21Operation;
|
|
14
|
-
/** Token symbol (for deploy+mint only) */
|
|
17
|
+
/** Token symbol (for deploy+mint and deploy+auth only) */
|
|
15
18
|
sym?: string;
|
|
16
|
-
/** Decimals (for deploy+mint only, max 18) */
|
|
19
|
+
/** Decimals (for deploy+mint and deploy+auth only, max 18) */
|
|
17
20
|
dec?: number;
|
|
18
|
-
/** Icon URL or data URI (for deploy+mint only) */
|
|
21
|
+
/** Icon URL or data URI (for deploy+mint and deploy+auth only) */
|
|
19
22
|
icon?: string;
|
|
20
|
-
/** Token ID (for transfer/burn only) */
|
|
23
|
+
/** Token ID (for mint/auth/transfer/burn only) */
|
|
21
24
|
id?: string;
|
|
25
|
+
/** Token amount (omitted for deploy+auth and auth) */
|
|
26
|
+
amt?: string;
|
|
22
27
|
}
|
|
23
28
|
/**
|
|
24
29
|
* BSV-21 token inscription interface (compatible with js-1sat-ord)
|
|
25
30
|
*/
|
|
26
|
-
export interface BSV21Inscription extends TokenInscription {
|
|
31
|
+
export interface BSV21Inscription extends Omit<TokenInscription, 'amt'> {
|
|
27
32
|
/** Token operation */
|
|
28
|
-
op:
|
|
29
|
-
/** Token symbol (for deploy+mint only) */
|
|
33
|
+
op: BSV21Operation;
|
|
34
|
+
/** Token symbol (for deploy+mint and deploy+auth only) */
|
|
30
35
|
sym?: string;
|
|
31
|
-
/** Decimals (for deploy+mint only, max 18) */
|
|
36
|
+
/** Decimals (for deploy+mint and deploy+auth only, max 18) */
|
|
32
37
|
dec?: number;
|
|
33
|
-
/** Icon URL or data URI (for deploy+mint only) */
|
|
38
|
+
/** Icon URL or data URI (for deploy+mint and deploy+auth only) */
|
|
34
39
|
icon?: string;
|
|
35
|
-
/** Token ID (for transfer/burn only) */
|
|
40
|
+
/** Token ID (for mint/auth/transfer/burn only) */
|
|
36
41
|
id?: string;
|
|
42
|
+
/** Token amount (omitted for deploy+auth and auth) */
|
|
43
|
+
amt?: string;
|
|
37
44
|
}
|
|
38
45
|
/**
|
|
39
46
|
* BSV-21 token creation options
|
|
@@ -90,6 +97,44 @@ export default class BSV21 implements ScriptTemplate {
|
|
|
90
97
|
* @returns A new BSV21 instance
|
|
91
98
|
*/
|
|
92
99
|
static deployMint(symbol: string, amount: bigint, decimals?: number, icon?: string, options?: BSV21Options): BSV21;
|
|
100
|
+
/**
|
|
101
|
+
* Creates a deploy+auth token (mintable token genesis with no initial supply).
|
|
102
|
+
*
|
|
103
|
+
* Emits a deploy declaration carrying the token's metadata. The accompanying
|
|
104
|
+
* `auth` output (built separately via {@link BSV21.auth}) carries the capability
|
|
105
|
+
* to mint future supply.
|
|
106
|
+
*
|
|
107
|
+
* @param symbol - Token symbol/ticker
|
|
108
|
+
* @param decimals - Number of decimal places (0-18, default 0)
|
|
109
|
+
* @param icon - Optional icon URL or data URI
|
|
110
|
+
* @param options - Optional inscription parameters
|
|
111
|
+
* @returns A new BSV21 instance
|
|
112
|
+
*/
|
|
113
|
+
static deployAuth(symbol: string, decimals?: number, icon?: string, options?: BSV21Options): BSV21;
|
|
114
|
+
/**
|
|
115
|
+
* Creates a mint operation that adds new supply to an existing mintable token.
|
|
116
|
+
*
|
|
117
|
+
* The transaction containing this output must spend an existing `auth` UTXO
|
|
118
|
+
* for the same `tokenId` to prove minting authority.
|
|
119
|
+
*
|
|
120
|
+
* @param tokenId - Token deployment outpoint (txid_vout)
|
|
121
|
+
* @param amount - Amount to mint
|
|
122
|
+
* @param options - Optional inscription parameters
|
|
123
|
+
* @returns A new BSV21 instance
|
|
124
|
+
*/
|
|
125
|
+
static mint(tokenId: string, amount: bigint, options?: BSV21Options): BSV21;
|
|
126
|
+
/**
|
|
127
|
+
* Creates an auth output that propagates the mint capability for a token.
|
|
128
|
+
*
|
|
129
|
+
* Auth outputs carry no `amt` — they are pure capability tokens. A mint
|
|
130
|
+
* transaction must spend an existing auth UTXO and (typically) produce a
|
|
131
|
+
* new auth output to continue the chain.
|
|
132
|
+
*
|
|
133
|
+
* @param tokenId - Token deployment outpoint (txid_vout)
|
|
134
|
+
* @param options - Optional inscription parameters
|
|
135
|
+
* @returns A new BSV21 instance
|
|
136
|
+
*/
|
|
137
|
+
static auth(tokenId: string, options?: BSV21Options): BSV21;
|
|
93
138
|
/**
|
|
94
139
|
* Creates a transfer token for moving tokens between addresses
|
|
95
140
|
*
|
|
@@ -132,9 +177,10 @@ export default class BSV21 implements ScriptTemplate {
|
|
|
132
177
|
estimateLength: () => Promise<number>;
|
|
133
178
|
};
|
|
134
179
|
/**
|
|
135
|
-
* Gets the token amount as BigInt
|
|
180
|
+
* Gets the token amount as BigInt. Auth ops (`deploy+auth`, `auth`) carry no
|
|
181
|
+
* amount and return 0n.
|
|
136
182
|
*
|
|
137
|
-
* @returns Token amount
|
|
183
|
+
* @returns Token amount, or 0n for auth ops
|
|
138
184
|
*/
|
|
139
185
|
getAmount(): bigint;
|
|
140
186
|
/**
|
|
@@ -221,11 +267,5 @@ export default class BSV21 implements ScriptTemplate {
|
|
|
221
267
|
* @returns JSON representation of token data
|
|
222
268
|
*/
|
|
223
269
|
toJSON(): string;
|
|
224
|
-
/**
|
|
225
|
-
* Validates the token data structure
|
|
226
|
-
*
|
|
227
|
-
* @returns true if token data is valid
|
|
228
|
-
*/
|
|
229
|
-
validate(): boolean;
|
|
230
270
|
}
|
|
231
271
|
//# sourceMappingURL=bsv21.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bsv21.d.ts","sourceRoot":"","sources":["../../src/bsv21/bsv21.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,WAAW,MAAM,+BAA+B,CAAA;AAEvD;;GAEG;AACH,MAAM,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"bsv21.d.ts","sourceRoot":"","sources":["../../src/bsv21/bsv21.ts"],"names":[],"mappings":"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"}
|
package/dist/bsv21/bsv21.js
CHANGED
|
@@ -96,6 +96,116 @@ export default class BSV21 {
|
|
|
96
96
|
const inscription = Inscription.fromText(jsonContent, 'application/bsv-20', options);
|
|
97
97
|
return new BSV21(tokenData, inscription);
|
|
98
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Creates a deploy+auth token (mintable token genesis with no initial supply).
|
|
101
|
+
*
|
|
102
|
+
* Emits a deploy declaration carrying the token's metadata. The accompanying
|
|
103
|
+
* `auth` output (built separately via {@link BSV21.auth}) carries the capability
|
|
104
|
+
* to mint future supply.
|
|
105
|
+
*
|
|
106
|
+
* @param symbol - Token symbol/ticker
|
|
107
|
+
* @param decimals - Number of decimal places (0-18, default 0)
|
|
108
|
+
* @param icon - Optional icon URL or data URI
|
|
109
|
+
* @param options - Optional inscription parameters
|
|
110
|
+
* @returns A new BSV21 instance
|
|
111
|
+
*/
|
|
112
|
+
static deployAuth(symbol, decimals = 0, icon, options = {}) {
|
|
113
|
+
if (symbol == null || symbol === '' || symbol.length === 0) {
|
|
114
|
+
throw new Error('Symbol cannot be empty');
|
|
115
|
+
}
|
|
116
|
+
if (symbol.length > 32) {
|
|
117
|
+
throw new Error('Symbol cannot exceed 32 characters');
|
|
118
|
+
}
|
|
119
|
+
if (decimals < 0 || decimals > 18) {
|
|
120
|
+
throw new Error('Decimals must be between 0 and 18');
|
|
121
|
+
}
|
|
122
|
+
const tokenData = {
|
|
123
|
+
p: 'bsv-20',
|
|
124
|
+
op: 'deploy+auth',
|
|
125
|
+
sym: symbol,
|
|
126
|
+
};
|
|
127
|
+
if (decimals > 0) {
|
|
128
|
+
tokenData.dec = decimals;
|
|
129
|
+
}
|
|
130
|
+
if (icon != null && icon !== '') {
|
|
131
|
+
tokenData.icon = icon;
|
|
132
|
+
}
|
|
133
|
+
const wireFormat = {
|
|
134
|
+
p: tokenData.p,
|
|
135
|
+
op: tokenData.op,
|
|
136
|
+
sym: tokenData.sym,
|
|
137
|
+
};
|
|
138
|
+
if (tokenData.dec !== undefined) {
|
|
139
|
+
wireFormat.dec = tokenData.dec.toString();
|
|
140
|
+
}
|
|
141
|
+
if (tokenData.icon !== undefined) {
|
|
142
|
+
wireFormat.icon = tokenData.icon;
|
|
143
|
+
}
|
|
144
|
+
const inscription = Inscription.fromText(JSON.stringify(wireFormat), 'application/bsv-20', options);
|
|
145
|
+
return new BSV21(tokenData, inscription);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Creates a mint operation that adds new supply to an existing mintable token.
|
|
149
|
+
*
|
|
150
|
+
* The transaction containing this output must spend an existing `auth` UTXO
|
|
151
|
+
* for the same `tokenId` to prove minting authority.
|
|
152
|
+
*
|
|
153
|
+
* @param tokenId - Token deployment outpoint (txid_vout)
|
|
154
|
+
* @param amount - Amount to mint
|
|
155
|
+
* @param options - Optional inscription parameters
|
|
156
|
+
* @returns A new BSV21 instance
|
|
157
|
+
*/
|
|
158
|
+
static mint(tokenId, amount, options = {}) {
|
|
159
|
+
if (tokenId == null || tokenId === '' || tokenId.length === 0) {
|
|
160
|
+
throw new Error('Token ID cannot be empty');
|
|
161
|
+
}
|
|
162
|
+
if (amount <= BigInt(0)) {
|
|
163
|
+
throw new Error('Amount must be positive');
|
|
164
|
+
}
|
|
165
|
+
const parts = tokenId.split('_');
|
|
166
|
+
if (parts.length !== 2 ||
|
|
167
|
+
parts[0].length !== 64 ||
|
|
168
|
+
!/^\d+$/.test(parts[1])) {
|
|
169
|
+
throw new Error('Token ID must be in format: txid_vout');
|
|
170
|
+
}
|
|
171
|
+
const tokenData = {
|
|
172
|
+
p: 'bsv-20',
|
|
173
|
+
op: 'mint',
|
|
174
|
+
id: tokenId,
|
|
175
|
+
amt: amount.toString(),
|
|
176
|
+
};
|
|
177
|
+
const inscription = Inscription.fromText(JSON.stringify(tokenData), 'application/bsv-20', options);
|
|
178
|
+
return new BSV21(tokenData, inscription);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Creates an auth output that propagates the mint capability for a token.
|
|
182
|
+
*
|
|
183
|
+
* Auth outputs carry no `amt` — they are pure capability tokens. A mint
|
|
184
|
+
* transaction must spend an existing auth UTXO and (typically) produce a
|
|
185
|
+
* new auth output to continue the chain.
|
|
186
|
+
*
|
|
187
|
+
* @param tokenId - Token deployment outpoint (txid_vout)
|
|
188
|
+
* @param options - Optional inscription parameters
|
|
189
|
+
* @returns A new BSV21 instance
|
|
190
|
+
*/
|
|
191
|
+
static auth(tokenId, options = {}) {
|
|
192
|
+
if (tokenId == null || tokenId === '' || tokenId.length === 0) {
|
|
193
|
+
throw new Error('Token ID cannot be empty');
|
|
194
|
+
}
|
|
195
|
+
const parts = tokenId.split('_');
|
|
196
|
+
if (parts.length !== 2 ||
|
|
197
|
+
parts[0].length !== 64 ||
|
|
198
|
+
!/^\d+$/.test(parts[1])) {
|
|
199
|
+
throw new Error('Token ID must be in format: txid_vout');
|
|
200
|
+
}
|
|
201
|
+
const tokenData = {
|
|
202
|
+
p: 'bsv-20',
|
|
203
|
+
op: 'auth',
|
|
204
|
+
id: tokenId,
|
|
205
|
+
};
|
|
206
|
+
const inscription = Inscription.fromText(JSON.stringify(tokenData), 'application/bsv-20', options);
|
|
207
|
+
return new BSV21(tokenData, inscription);
|
|
208
|
+
}
|
|
99
209
|
/**
|
|
100
210
|
* Creates a transfer token for moving tokens between addresses
|
|
101
211
|
*
|
|
@@ -195,22 +305,29 @@ export default class BSV21 {
|
|
|
195
305
|
return null;
|
|
196
306
|
if (data.op == null || typeof data.op !== 'string')
|
|
197
307
|
return null;
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
amount = BigInt(data.amt);
|
|
204
|
-
if (amount <= BigInt(0))
|
|
308
|
+
const operation = data.op.toLowerCase();
|
|
309
|
+
// Auth ops MUST NOT carry amt; all other ops require amt
|
|
310
|
+
const isAuthOp = operation === 'deploy+auth' || operation === 'auth';
|
|
311
|
+
if (isAuthOp) {
|
|
312
|
+
if (data.amt !== undefined)
|
|
205
313
|
return null;
|
|
206
314
|
}
|
|
207
|
-
|
|
208
|
-
|
|
315
|
+
else {
|
|
316
|
+
if (data.amt == null || typeof data.amt !== 'string')
|
|
317
|
+
return null;
|
|
318
|
+
try {
|
|
319
|
+
const amount = BigInt(data.amt);
|
|
320
|
+
if (amount <= BigInt(0))
|
|
321
|
+
return null;
|
|
322
|
+
}
|
|
323
|
+
catch {
|
|
324
|
+
return null;
|
|
325
|
+
}
|
|
209
326
|
}
|
|
210
327
|
// Validate operation and required fields
|
|
211
|
-
const operation = data.op.toLowerCase();
|
|
212
328
|
switch (operation) {
|
|
213
329
|
case 'deploy+mint':
|
|
330
|
+
case 'deploy+auth':
|
|
214
331
|
if (data.sym == null || typeof data.sym !== 'string')
|
|
215
332
|
return null;
|
|
216
333
|
if (data.sym.length === 0 || data.sym.length > 32)
|
|
@@ -228,6 +345,8 @@ export default class BSV21 {
|
|
|
228
345
|
data.dec = dec;
|
|
229
346
|
}
|
|
230
347
|
break;
|
|
348
|
+
case 'mint':
|
|
349
|
+
case 'auth':
|
|
231
350
|
case 'transfer':
|
|
232
351
|
case 'burn': {
|
|
233
352
|
if (data.id == null || typeof data.id !== 'string')
|
|
@@ -248,10 +367,12 @@ export default class BSV21 {
|
|
|
248
367
|
const tokenData = {
|
|
249
368
|
p: 'bsv-20',
|
|
250
369
|
op: operation,
|
|
251
|
-
amt: data.amt,
|
|
252
370
|
};
|
|
371
|
+
if (!isAuthOp) {
|
|
372
|
+
tokenData.amt = data.amt;
|
|
373
|
+
}
|
|
253
374
|
// Add operation-specific fields
|
|
254
|
-
if (operation === 'deploy+mint') {
|
|
375
|
+
if (operation === 'deploy+mint' || operation === 'deploy+auth') {
|
|
255
376
|
tokenData.sym = data.sym;
|
|
256
377
|
if (data.dec !== undefined) {
|
|
257
378
|
tokenData.dec = data.dec;
|
|
@@ -277,15 +398,23 @@ export default class BSV21 {
|
|
|
277
398
|
*/
|
|
278
399
|
lock(lockingScript) {
|
|
279
400
|
if (lockingScript != null) {
|
|
280
|
-
// Create new inscription with the locking script as suffix
|
|
281
401
|
const options = {
|
|
282
402
|
parent: this.inscription.parent,
|
|
283
403
|
scriptPrefix: this.inscription.scriptPrefix,
|
|
284
404
|
scriptSuffix: lockingScript,
|
|
285
405
|
};
|
|
286
|
-
//
|
|
287
|
-
|
|
288
|
-
const
|
|
406
|
+
// Build wire format: `dec` must be serialized as a string per BSV-20
|
|
407
|
+
// protocol; strip any undefined fields.
|
|
408
|
+
const wireFormat = { ...this.tokenData };
|
|
409
|
+
if (this.tokenData.dec !== undefined) {
|
|
410
|
+
wireFormat.dec = this.tokenData.dec.toString();
|
|
411
|
+
}
|
|
412
|
+
for (const key of Object.keys(wireFormat)) {
|
|
413
|
+
if (wireFormat[key] === undefined) {
|
|
414
|
+
delete wireFormat[key];
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
const newInscription = Inscription.fromText(JSON.stringify(wireFormat), 'application/bsv-20', options);
|
|
289
418
|
return newInscription.lock();
|
|
290
419
|
}
|
|
291
420
|
return this.inscription.lock();
|
|
@@ -299,12 +428,13 @@ export default class BSV21 {
|
|
|
299
428
|
throw new Error('BSV-21 tokens cannot be unlocked directly');
|
|
300
429
|
}
|
|
301
430
|
/**
|
|
302
|
-
* Gets the token amount as BigInt
|
|
431
|
+
* Gets the token amount as BigInt. Auth ops (`deploy+auth`, `auth`) carry no
|
|
432
|
+
* amount and return 0n.
|
|
303
433
|
*
|
|
304
|
-
* @returns Token amount
|
|
434
|
+
* @returns Token amount, or 0n for auth ops
|
|
305
435
|
*/
|
|
306
436
|
getAmount() {
|
|
307
|
-
return BigInt(this.tokenData.amt);
|
|
437
|
+
return this.tokenData.amt != null ? BigInt(this.tokenData.amt) : 0n;
|
|
308
438
|
}
|
|
309
439
|
/**
|
|
310
440
|
* Gets the token amount as BigInt (concise method)
|
|
@@ -418,58 +548,5 @@ export default class BSV21 {
|
|
|
418
548
|
toJSON() {
|
|
419
549
|
return JSON.stringify(this.tokenData, null, 2);
|
|
420
550
|
}
|
|
421
|
-
/**
|
|
422
|
-
* Validates the token data structure
|
|
423
|
-
*
|
|
424
|
-
* @returns true if token data is valid
|
|
425
|
-
*/
|
|
426
|
-
validate() {
|
|
427
|
-
try {
|
|
428
|
-
// Validate basic structure
|
|
429
|
-
if (this.tokenData.p !== 'bsv-20')
|
|
430
|
-
return false;
|
|
431
|
-
if (this.tokenData.op == null ||
|
|
432
|
-
this.tokenData.amt == null ||
|
|
433
|
-
this.tokenData.amt === '')
|
|
434
|
-
return false;
|
|
435
|
-
// Validate amount
|
|
436
|
-
const amount = BigInt(this.tokenData.amt);
|
|
437
|
-
if (amount <= BigInt(0))
|
|
438
|
-
return false;
|
|
439
|
-
// Validate operation-specific fields
|
|
440
|
-
switch (this.tokenData.op) {
|
|
441
|
-
case 'deploy+mint':
|
|
442
|
-
if (this.tokenData.sym == null ||
|
|
443
|
-
this.tokenData.sym === '' ||
|
|
444
|
-
this.tokenData.sym.length === 0 ||
|
|
445
|
-
this.tokenData.sym.length > 32) {
|
|
446
|
-
return false;
|
|
447
|
-
}
|
|
448
|
-
if (this.tokenData.dec !== undefined &&
|
|
449
|
-
(this.tokenData.dec < 0 || this.tokenData.dec > 18)) {
|
|
450
|
-
return false;
|
|
451
|
-
}
|
|
452
|
-
break;
|
|
453
|
-
case 'transfer':
|
|
454
|
-
case 'burn': {
|
|
455
|
-
if (this.tokenData.id == null || this.tokenData.id === '')
|
|
456
|
-
return false;
|
|
457
|
-
const parts = this.tokenData.id.split('_');
|
|
458
|
-
if (parts.length !== 2 ||
|
|
459
|
-
parts[0].length !== 64 ||
|
|
460
|
-
!/^\d+$/.test(parts[1])) {
|
|
461
|
-
return false;
|
|
462
|
-
}
|
|
463
|
-
break;
|
|
464
|
-
}
|
|
465
|
-
default:
|
|
466
|
-
return false;
|
|
467
|
-
}
|
|
468
|
-
return true;
|
|
469
|
-
}
|
|
470
|
-
catch {
|
|
471
|
-
return false;
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
551
|
}
|
|
475
552
|
//# sourceMappingURL=bsv21.js.map
|
package/dist/bsv21/bsv21.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bsv21.js","sourceRoot":"","sources":["../../src/bsv21/bsv21.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bsv21.js","sourceRoot":"","sources":["../../src/bsv21/bsv21.ts"],"names":[],"mappings":"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"}
|
package/dist/cosign/cosign.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Script } from '@bsv/sdk';
|
|
1
|
+
import { LockingScript, type Script, UnlockingScript } from '@bsv/sdk';
|
|
2
2
|
/**
|
|
3
3
|
* Cosign decoded data structure
|
|
4
4
|
*/
|
|
@@ -18,13 +18,26 @@ export interface CosignData {
|
|
|
18
18
|
* Script pattern:
|
|
19
19
|
* OP_DUP OP_HASH160 <20-byte PKHash> OP_EQUALVERIFY OP_CHECKSIGVERIFY <33-byte pubkey> OP_CHECKSIG
|
|
20
20
|
*
|
|
21
|
+
* Unlock pattern (top of stack last):
|
|
22
|
+
* <approver-sig+hashtype> <owner-sig+hashtype> <owner-pubkey>
|
|
23
|
+
*
|
|
21
24
|
* @example
|
|
22
25
|
* ```typescript
|
|
26
|
+
* // Decode a Cosign from a script
|
|
23
27
|
* const cosign = Cosign.decode(script)
|
|
24
28
|
* if (cosign) {
|
|
25
29
|
* console.log(`Owner address: ${cosign.address}`)
|
|
26
30
|
* console.log(`Cosigner pubkey: ${cosign.cosigner}`)
|
|
27
31
|
* }
|
|
32
|
+
*
|
|
33
|
+
* // Build a cosign locking script
|
|
34
|
+
* const lock = Cosign.lock(ownerAddress, cosignerPubKeyHex)
|
|
35
|
+
*
|
|
36
|
+
* // Build the owner half of the unlock (sig + pubkey)
|
|
37
|
+
* const ownerUnlock = Cosign.ownerUnlock(ownerSigDER, sigHashFlag, ownerPubKeyHex)
|
|
38
|
+
*
|
|
39
|
+
* // Prepend the approver sig to produce the full unlock
|
|
40
|
+
* const fullUnlock = Cosign.approverUnlock(approverSigDER, sigHashFlag, ownerUnlock)
|
|
28
41
|
* ```
|
|
29
42
|
*/
|
|
30
43
|
export default class Cosign {
|
|
@@ -43,5 +56,40 @@ export default class Cosign {
|
|
|
43
56
|
* @returns true if the script contains Cosign pattern
|
|
44
57
|
*/
|
|
45
58
|
static isCosign(script: Script): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Builds a Cosign locking script.
|
|
61
|
+
*
|
|
62
|
+
* @param ownerAddress - Owner's base58check address (mainnet or testnet)
|
|
63
|
+
* @param cosignerPubKey - Cosigner's compressed public key (hex)
|
|
64
|
+
* @returns Locking script: OP_DUP OP_HASH160 <pkhash> OP_EQUALVERIFY OP_CHECKSIGVERIFY <cosignerPubKey> OP_CHECKSIG
|
|
65
|
+
* @throws if the address does not decode to a 20-byte pkhash, or the pubkey is not 33 bytes
|
|
66
|
+
*/
|
|
67
|
+
static lock(ownerAddress: string, cosignerPubKey: string): LockingScript;
|
|
68
|
+
/**
|
|
69
|
+
* Builds the owner half of a cosign unlocking script: <ownerSig+hashtype> <ownerPubKey>.
|
|
70
|
+
*
|
|
71
|
+
* The caller computes the input sighash externally (e.g. via wallet.createSignature against
|
|
72
|
+
* the cosign locking script as the subscript) and provides the DER-encoded signature here.
|
|
73
|
+
*
|
|
74
|
+
* The result is the unlock that the cosigner will subsequently prepend its signature onto
|
|
75
|
+
* via {@link approverUnlock}.
|
|
76
|
+
*
|
|
77
|
+
* @param ownerSigDER - DER-encoded ECDSA signature
|
|
78
|
+
* @param sigHashFlag - sighash type byte to append to the signature (e.g. SIGHASH_ALL | SIGHASH_FORKID)
|
|
79
|
+
* @param ownerPubKey - Owner's compressed public key (hex)
|
|
80
|
+
*/
|
|
81
|
+
static ownerUnlock(ownerSigDER: number[], sigHashFlag: number, ownerPubKey: string): UnlockingScript;
|
|
82
|
+
/**
|
|
83
|
+
* Builds the full cosign unlocking script by prepending the approver's signature
|
|
84
|
+
* to an existing owner-side unlock.
|
|
85
|
+
*
|
|
86
|
+
* Result chunks (top of stack last):
|
|
87
|
+
* <approverSig+hashtype> <ownerSig+hashtype> <ownerPubKey>
|
|
88
|
+
*
|
|
89
|
+
* @param approverSigDER - DER-encoded ECDSA signature from the cosigner
|
|
90
|
+
* @param sigHashFlag - sighash type byte to append to the approver signature
|
|
91
|
+
* @param ownerUnlock - Owner-side unlock as produced by {@link ownerUnlock}
|
|
92
|
+
*/
|
|
93
|
+
static approverUnlock(approverSigDER: number[], sigHashFlag: number, ownerUnlock: Script | UnlockingScript): UnlockingScript;
|
|
46
94
|
}
|
|
47
95
|
//# sourceMappingURL=cosign.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosign.d.ts","sourceRoot":"","sources":["../../src/cosign/cosign.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"cosign.d.ts","sourceRoot":"","sources":["../../src/cosign/cosign.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EAEb,KAAK,MAAM,EACX,eAAe,EAEf,MAAM,UAAU,CAAA;AAEjB;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAA;IACf,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IAC1B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,UAAO,GAAG,UAAU,GAAG,IAAI;IA4BhE;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,aAAa;IAwBxE;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,WAAW,CACjB,WAAW,EAAE,MAAM,EAAE,EACrB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACjB,eAAe;IAalB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,cAAc,CACpB,cAAc,EAAE,MAAM,EAAE,EACxB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAAG,eAAe,GACnC,eAAe;CAYlB"}
|
package/dist/cosign/cosign.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OP, Utils } from '@bsv/sdk';
|
|
1
|
+
import { LockingScript, OP, UnlockingScript, Utils, } from '@bsv/sdk';
|
|
2
2
|
/**
|
|
3
3
|
* Cosign - Multi-signature template requiring owner + cosigner authorization
|
|
4
4
|
*
|
|
@@ -9,13 +9,26 @@ import { OP, Utils } from '@bsv/sdk';
|
|
|
9
9
|
* Script pattern:
|
|
10
10
|
* OP_DUP OP_HASH160 <20-byte PKHash> OP_EQUALVERIFY OP_CHECKSIGVERIFY <33-byte pubkey> OP_CHECKSIG
|
|
11
11
|
*
|
|
12
|
+
* Unlock pattern (top of stack last):
|
|
13
|
+
* <approver-sig+hashtype> <owner-sig+hashtype> <owner-pubkey>
|
|
14
|
+
*
|
|
12
15
|
* @example
|
|
13
16
|
* ```typescript
|
|
17
|
+
* // Decode a Cosign from a script
|
|
14
18
|
* const cosign = Cosign.decode(script)
|
|
15
19
|
* if (cosign) {
|
|
16
20
|
* console.log(`Owner address: ${cosign.address}`)
|
|
17
21
|
* console.log(`Cosigner pubkey: ${cosign.cosigner}`)
|
|
18
22
|
* }
|
|
23
|
+
*
|
|
24
|
+
* // Build a cosign locking script
|
|
25
|
+
* const lock = Cosign.lock(ownerAddress, cosignerPubKeyHex)
|
|
26
|
+
*
|
|
27
|
+
* // Build the owner half of the unlock (sig + pubkey)
|
|
28
|
+
* const ownerUnlock = Cosign.ownerUnlock(ownerSigDER, sigHashFlag, ownerPubKeyHex)
|
|
29
|
+
*
|
|
30
|
+
* // Prepend the approver sig to produce the full unlock
|
|
31
|
+
* const fullUnlock = Cosign.approverUnlock(approverSigDER, sigHashFlag, ownerUnlock)
|
|
19
32
|
* ```
|
|
20
33
|
*/
|
|
21
34
|
export default class Cosign {
|
|
@@ -58,5 +71,79 @@ export default class Cosign {
|
|
|
58
71
|
static isCosign(script) {
|
|
59
72
|
return Cosign.decode(script) !== null;
|
|
60
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Builds a Cosign locking script.
|
|
76
|
+
*
|
|
77
|
+
* @param ownerAddress - Owner's base58check address (mainnet or testnet)
|
|
78
|
+
* @param cosignerPubKey - Cosigner's compressed public key (hex)
|
|
79
|
+
* @returns Locking script: OP_DUP OP_HASH160 <pkhash> OP_EQUALVERIFY OP_CHECKSIGVERIFY <cosignerPubKey> OP_CHECKSIG
|
|
80
|
+
* @throws if the address does not decode to a 20-byte pkhash, or the pubkey is not 33 bytes
|
|
81
|
+
*/
|
|
82
|
+
static lock(ownerAddress, cosignerPubKey) {
|
|
83
|
+
const decoded = Utils.fromBase58Check(ownerAddress);
|
|
84
|
+
const pkhash = decoded.data;
|
|
85
|
+
if (pkhash.length !== 20) {
|
|
86
|
+
throw new Error(`Cosign.lock: invalid owner address (expected 20-byte pkhash, got ${pkhash.length})`);
|
|
87
|
+
}
|
|
88
|
+
const cosignerPubKeyBytes = Utils.toArray(cosignerPubKey, 'hex');
|
|
89
|
+
if (cosignerPubKeyBytes.length !== 33) {
|
|
90
|
+
throw new Error(`Cosign.lock: invalid cosigner pubkey (expected 33-byte compressed, got ${cosignerPubKeyBytes.length})`);
|
|
91
|
+
}
|
|
92
|
+
return new LockingScript()
|
|
93
|
+
.writeOpCode(OP.OP_DUP)
|
|
94
|
+
.writeOpCode(OP.OP_HASH160)
|
|
95
|
+
.writeBin(pkhash)
|
|
96
|
+
.writeOpCode(OP.OP_EQUALVERIFY)
|
|
97
|
+
.writeOpCode(OP.OP_CHECKSIGVERIFY)
|
|
98
|
+
.writeBin(cosignerPubKeyBytes)
|
|
99
|
+
.writeOpCode(OP.OP_CHECKSIG);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Builds the owner half of a cosign unlocking script: <ownerSig+hashtype> <ownerPubKey>.
|
|
103
|
+
*
|
|
104
|
+
* The caller computes the input sighash externally (e.g. via wallet.createSignature against
|
|
105
|
+
* the cosign locking script as the subscript) and provides the DER-encoded signature here.
|
|
106
|
+
*
|
|
107
|
+
* The result is the unlock that the cosigner will subsequently prepend its signature onto
|
|
108
|
+
* via {@link approverUnlock}.
|
|
109
|
+
*
|
|
110
|
+
* @param ownerSigDER - DER-encoded ECDSA signature
|
|
111
|
+
* @param sigHashFlag - sighash type byte to append to the signature (e.g. SIGHASH_ALL | SIGHASH_FORKID)
|
|
112
|
+
* @param ownerPubKey - Owner's compressed public key (hex)
|
|
113
|
+
*/
|
|
114
|
+
static ownerUnlock(ownerSigDER, sigHashFlag, ownerPubKey) {
|
|
115
|
+
const ownerPubKeyBytes = Utils.toArray(ownerPubKey, 'hex');
|
|
116
|
+
if (ownerPubKeyBytes.length !== 33) {
|
|
117
|
+
throw new Error(`Cosign.ownerUnlock: invalid owner pubkey (expected 33-byte compressed, got ${ownerPubKeyBytes.length})`);
|
|
118
|
+
}
|
|
119
|
+
const sigWithHashType = [...ownerSigDER, sigHashFlag & 0xff];
|
|
120
|
+
return new UnlockingScript()
|
|
121
|
+
.writeBin(sigWithHashType)
|
|
122
|
+
.writeBin(ownerPubKeyBytes);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Builds the full cosign unlocking script by prepending the approver's signature
|
|
126
|
+
* to an existing owner-side unlock.
|
|
127
|
+
*
|
|
128
|
+
* Result chunks (top of stack last):
|
|
129
|
+
* <approverSig+hashtype> <ownerSig+hashtype> <ownerPubKey>
|
|
130
|
+
*
|
|
131
|
+
* @param approverSigDER - DER-encoded ECDSA signature from the cosigner
|
|
132
|
+
* @param sigHashFlag - sighash type byte to append to the approver signature
|
|
133
|
+
* @param ownerUnlock - Owner-side unlock as produced by {@link ownerUnlock}
|
|
134
|
+
*/
|
|
135
|
+
static approverUnlock(approverSigDER, sigHashFlag, ownerUnlock) {
|
|
136
|
+
const sigWithHashType = [...approverSigDER, sigHashFlag & 0xff];
|
|
137
|
+
const out = new UnlockingScript().writeBin(sigWithHashType);
|
|
138
|
+
for (const chunk of ownerUnlock.chunks) {
|
|
139
|
+
if (chunk.data) {
|
|
140
|
+
out.writeBin(Array.from(chunk.data));
|
|
141
|
+
}
|
|
142
|
+
else if (typeof chunk.op === 'number') {
|
|
143
|
+
out.writeOpCode(chunk.op);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return out;
|
|
147
|
+
}
|
|
61
148
|
}
|
|
62
149
|
//# sourceMappingURL=cosign.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosign.js","sourceRoot":"","sources":["../../src/cosign/cosign.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"cosign.js","sourceRoot":"","sources":["../../src/cosign/cosign.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,EAAE,EAEF,eAAe,EACf,KAAK,GACL,MAAM,UAAU,CAAA;AAYjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IAC1B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,MAAc,EAAE,OAAO,GAAG,IAAI;QAC3C,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,IACC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM;oBAC1B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU;oBAClC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,EAAE;oBACjC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,cAAc;oBACtC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,iBAAiB;oBACzC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,EAAE;oBACjC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,WAAW,EAClC,CAAC;oBACF,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;oBAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAClC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAgB,EAC9B,aAAa,CACb,CAAA;oBACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAgB,CAAC,CAAA;oBAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;gBAC7B,CAAC;YACF,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,IAAI,CAAA;QACZ,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAc;QAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IACtC,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,YAAoB,EAAE,cAAsB;QACvD,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAgB,CAAA;QACvC,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACd,oEAAoE,MAAM,CAAC,MAAM,GAAG,CACpF,CAAA;QACF,CAAC;QACD,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QAChE,IAAI,mBAAmB,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACd,0EAA0E,mBAAmB,CAAC,MAAM,GAAG,CACvG,CAAA;QACF,CAAC;QACD,OAAO,IAAI,aAAa,EAAE;aACxB,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC;aACtB,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC;aAC1B,QAAQ,CAAC,MAAM,CAAC;aAChB,WAAW,CAAC,EAAE,CAAC,cAAc,CAAC;aAC9B,WAAW,CAAC,EAAE,CAAC,iBAAiB,CAAC;aACjC,QAAQ,CAAC,mBAAmB,CAAC;aAC7B,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,WAAW,CACjB,WAAqB,EACrB,WAAmB,EACnB,WAAmB;QAEnB,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QAC1D,IAAI,gBAAgB,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACd,8EAA8E,gBAAgB,CAAC,MAAM,GAAG,CACxG,CAAA;QACF,CAAC;QACD,MAAM,eAAe,GAAG,CAAC,GAAG,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC,CAAA;QAC5D,OAAO,IAAI,eAAe,EAAE;aAC1B,QAAQ,CAAC,eAAe,CAAC;aACzB,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAC7B,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,cAAc,CACpB,cAAwB,EACxB,WAAmB,EACnB,WAAqC;QAErC,MAAM,eAAe,GAAG,CAAC,GAAG,cAAc,EAAE,WAAW,GAAG,IAAI,CAAC,CAAA;QAC/D,MAAM,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;QAC3D,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;YACrC,CAAC;iBAAM,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACzC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC1B,CAAC;QACF,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC;CACD"}
|
package/package.json
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
2
|
+
"name": "@1sat/templates",
|
|
3
|
+
"version": "0.0.11",
|
|
4
|
+
"description": "Bitcoin script templates for 1Sat Ordinals SDK",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./sigma": {
|
|
14
|
+
"types": "./dist/bitcom/sigma.d.ts",
|
|
15
|
+
"import": "./dist/bitcom/sigma.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "tsc",
|
|
23
|
+
"dev": "tsc --watch",
|
|
24
|
+
"clean": "rm -rf dist"
|
|
25
|
+
},
|
|
26
|
+
"keywords": [
|
|
27
|
+
"1sat",
|
|
28
|
+
"bsv",
|
|
29
|
+
"ordinals",
|
|
30
|
+
"templates",
|
|
31
|
+
"typescript"
|
|
32
|
+
],
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@1sat/types": "0.0.19"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"@bsv/sdk": "^2.0.13"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@bsv/sdk": "^2.0.13",
|
|
42
|
+
"typescript": "^5.9.3"
|
|
43
|
+
}
|
|
44
44
|
}
|