@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.
@@ -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: 'deploy+mint' | 'transfer' | 'burn';
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":"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"}
1
+ {"version":3,"file":"bsv21.d.ts","sourceRoot":"","sources":["../../src/bsv21/bsv21.ts"],"names":[],"mappings":"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"}
@@ -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
- if (data.amt == null || typeof data.amt !== 'string')
199
- return null;
200
- // Parse amount
201
- let amount;
202
- try {
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
- catch {
208
- return null;
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
- // Create new inscription with suffix
287
- const jsonContent = JSON.stringify(this.tokenData);
288
- const newInscription = Inscription.fromText(jsonContent, 'application/bsv-20', options);
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
@@ -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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"}
@@ -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,EAAM,KAAK,MAAM,EAAS,MAAM,UAAU,CAAA;AAEjD;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAA;IACf,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;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;CAGxC"}
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"}
@@ -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,EAAE,EAAE,EAAe,KAAK,EAAE,MAAM,UAAU,CAAA;AAYjD;;;;;;;;;;;;;;;;;;GAkBG;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;CACD"}
1
+ {"version":3,"file":"cosign.js","sourceRoot":"","sources":["../../src/cosign/cosign.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,44 +1,44 @@
1
1
  {
2
- "name": "@1sat/templates",
3
- "version": "0.0.9",
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.18"
36
- },
37
- "peerDependencies": {
38
- "@bsv/sdk": "^2.0.13"
39
- },
40
- "devDependencies": {
41
- "@bsv/sdk": "^2.0.13",
42
- "typescript": "^5.9.3"
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
  }