@1sat/templates 0.0.23 → 0.0.26
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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/opns/opns.d.ts +101 -0
- package/dist/opns/opns.d.ts.map +1 -0
- package/dist/opns/opns.js +224 -0
- package/dist/opns/opns.js.map +1 -0
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export type { ShrugData } from './shrug/shrug.js';
|
|
|
8
8
|
export { SHRUG_METADATA_CONTENT_TYPE, decodeShrugMetadata, encodeShrugMetadata, outpointFromBytes, outpointToBytes, } from './shrug/metadata.js';
|
|
9
9
|
export type { ShrugMetadata } from './shrug/metadata.js';
|
|
10
10
|
export { default as OrdLock } from './ordlock/ordlock.js';
|
|
11
|
+
export { default as OpNS, OPNS_CONTRACT_BYTES, OPNS_GENESIS_BYTES, } from './opns/opns.js';
|
|
12
|
+
export type { OpNSData } from './opns/opns.js';
|
|
11
13
|
export { default as Lock } from './lock/lock.js';
|
|
12
14
|
export { default as Cosign } from './cosign/cosign.js';
|
|
13
15
|
export type { CosignData } from './cosign/cosign.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export { default as BSV21 } from './bsv21/bsv21.js';
|
|
|
7
7
|
export { default as Shrug, SHRUG_TAG_HEX } from './shrug/shrug.js';
|
|
8
8
|
export { SHRUG_METADATA_CONTENT_TYPE, decodeShrugMetadata, encodeShrugMetadata, outpointFromBytes, outpointToBytes, } from './shrug/metadata.js';
|
|
9
9
|
export { default as OrdLock } from './ordlock/ordlock.js';
|
|
10
|
+
export { default as OpNS, OPNS_CONTRACT_BYTES, OPNS_GENESIS_BYTES, } from './opns/opns.js';
|
|
10
11
|
export { default as Lock } from './lock/lock.js';
|
|
11
12
|
export { default as Cosign } from './cosign/cosign.js';
|
|
12
13
|
export { default as P2MS } from './multisig/multisig.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG5D,mBAAmB;AACnB,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAElE,OAAO,EACN,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,GACf,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAGxD,mBAAmB;AACnB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAEhD,UAAU;AACV,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEzD,qEAAqE;AACrE,kCAAkC;AAClC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAqCpD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAMrE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAezD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAM5C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAM7D,OAAO,EACN,kBAAkB,EAClB,mBAAmB,GACnB,MAAM,iBAAiB,CAAA;AAMxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAWxD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE1E,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAC/E,OAAO,EACN,iBAAiB,EACjB,cAAc,GACd,MAAM,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG5D,mBAAmB;AACnB,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAElE,OAAO,EACN,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,GACf,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACN,OAAO,IAAI,IAAI,EACf,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAGxD,mBAAmB;AACnB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAEhD,UAAU;AACV,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEzD,qEAAqE;AACrE,kCAAkC;AAClC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAqCpD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAMrE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAezD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAM5C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAM7D,OAAO,EACN,kBAAkB,EAClB,mBAAmB,GACnB,MAAM,iBAAiB,CAAA;AAMxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAWxD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE1E,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAC/E,OAAO,EACN,iBAAiB,EACjB,cAAc,GACd,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Script, type Transaction, UnlockingScript } from '@bsv/sdk';
|
|
2
|
+
/** OpNS covenant contract as a byte array (the compiled sCrypt prefix). */
|
|
3
|
+
export declare const OPNS_CONTRACT_BYTES: any[];
|
|
4
|
+
/** Genesis outpoint bytes embedded in every node's state. */
|
|
5
|
+
export declare const OPNS_GENESIS_BYTES: any[];
|
|
6
|
+
/** Decoded OpNS node state. */
|
|
7
|
+
export interface OpNSData {
|
|
8
|
+
/** Claimed-character bitfield (little-endian). */
|
|
9
|
+
claimed: number[];
|
|
10
|
+
/** The name mined so far. */
|
|
11
|
+
domain: string;
|
|
12
|
+
/** Proof-of-work root: sha256d hash the node was mined to. */
|
|
13
|
+
pow: number[];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* OpNS - Ordinals Name System covenant template.
|
|
17
|
+
*
|
|
18
|
+
* A node output locks the compiled covenant plus a stateful OP_RETURN trailer
|
|
19
|
+
* carrying {genesis, claimed, domain, pow}. Spending it mines one character:
|
|
20
|
+
* the keyless unlock pushes char + nonce + ownerScript + trailingOutputs +
|
|
21
|
+
* the BIP-143 preimage (SIGHASH_ALL | ANYONECANPAY | FORKID), and the covenant
|
|
22
|
+
* validates the three mandated outputs (restated parent, child node, name
|
|
23
|
+
* inscription) against its own introspected state.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const node = OpNS.decode(parentTx.outputs[1].lockingScript)
|
|
28
|
+
* const child = OpNS.lock([0], node.domain + 'h', solutionHash)
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export default class OpNS {
|
|
32
|
+
/**
|
|
33
|
+
* Builds a node locking script: the compiled covenant followed by the
|
|
34
|
+
* stateful OP_RETURN trailer.
|
|
35
|
+
*
|
|
36
|
+
* @param claimed - Claimed-character bitfield (little-endian)
|
|
37
|
+
* @param domain - The name mined so far
|
|
38
|
+
* @param pow - The sha256d hash the node was mined to (32 bytes)
|
|
39
|
+
* @returns The node locking script
|
|
40
|
+
*/
|
|
41
|
+
static lock(claimed: number[], domain: string, pow: number[]): Script;
|
|
42
|
+
/**
|
|
43
|
+
* Decodes a node's state from its locking script.
|
|
44
|
+
*
|
|
45
|
+
* @param script - The locking script to decode
|
|
46
|
+
* @returns Decoded node state, or null if not an OpNS node
|
|
47
|
+
*/
|
|
48
|
+
static decode(script: Script): OpNSData | null;
|
|
49
|
+
/**
|
|
50
|
+
* Sets the bit for a claimed character in the node's bitfield.
|
|
51
|
+
*
|
|
52
|
+
* @param claimed - Current claimed bitfield (little-endian)
|
|
53
|
+
* @param char - Character byte to mark claimed
|
|
54
|
+
* @returns Updated claimed bitfield
|
|
55
|
+
*/
|
|
56
|
+
static claimBit(claimed: number[], char: number): number[];
|
|
57
|
+
/**
|
|
58
|
+
* Builds the 1Sat ordinal inscription for a mined name, locked to
|
|
59
|
+
* ownerScript.
|
|
60
|
+
*
|
|
61
|
+
* @param domain - The mined name
|
|
62
|
+
* @param ownerScript - The owner's locking script (prefix)
|
|
63
|
+
* @returns The inscription locking script
|
|
64
|
+
*/
|
|
65
|
+
static buildInscription(domain: string, ownerScript: Script): Script;
|
|
66
|
+
/**
|
|
67
|
+
* Tests whether a nonce solves the proof-of-work for a character: the
|
|
68
|
+
* top OPNS_DIFFICULTY bits of the reversed sha256d(pow ‖ char ‖ nonce)
|
|
69
|
+
* must be zero.
|
|
70
|
+
*
|
|
71
|
+
* @param pow - The node's pow root (32 bytes)
|
|
72
|
+
* @param char - Character byte being mined
|
|
73
|
+
* @param nonce - Candidate nonce (32 bytes)
|
|
74
|
+
* @returns The solution hash if valid, otherwise null
|
|
75
|
+
*/
|
|
76
|
+
static testSolution(pow: number[], char: number, nonce: number[]): number[] | null;
|
|
77
|
+
/**
|
|
78
|
+
* Serializes a transaction output (8-byte LE value + varint length +
|
|
79
|
+
* script) as the covenant expects in trailingOutputs.
|
|
80
|
+
*
|
|
81
|
+
* @param satoshis - Output value
|
|
82
|
+
* @param script - Locking script bytes
|
|
83
|
+
* @returns Serialized output bytes
|
|
84
|
+
*/
|
|
85
|
+
static buildOutput(satoshis: number, script: number[]): number[];
|
|
86
|
+
/**
|
|
87
|
+
* Builds the keyless covenant unlock for a mined character. The unlock
|
|
88
|
+
* pushes char, nonce, ownerScript, the serialized trailing outputs (those
|
|
89
|
+
* beyond the three mandated by the covenant), and the BIP-143 preimage.
|
|
90
|
+
*
|
|
91
|
+
* @param char - Character byte being mined
|
|
92
|
+
* @param nonce - The winning nonce (32 bytes)
|
|
93
|
+
* @param ownerScript - The owner's locking script for the name
|
|
94
|
+
* @returns Unlock template with sign and estimateLength methods
|
|
95
|
+
*/
|
|
96
|
+
static unlock(char: number, nonce: number[], ownerScript: Script): {
|
|
97
|
+
sign: (tx: Transaction, inputIndex: number) => Promise<UnlockingScript>;
|
|
98
|
+
estimateLength: (tx: Transaction, inputIndex: number) => Promise<number>;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=opns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opns.d.ts","sourceRoot":"","sources":["../../src/opns/opns.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,MAAM,EACN,KAAK,WAAW,EAEhB,eAAe,EAEf,MAAM,UAAU,CAAA;AAEjB,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,OAAsC,CAAA;AAEtE,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,OAAqC,CAAA;AAQpE,+BAA+B;AAC/B,MAAM,WAAW,QAAQ;IACxB,kDAAkD;IAClD,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,GAAG,EAAE,MAAM,EAAE,CAAA;CACb;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,IAAI;IACxB;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;IAkBrE;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAwB9C;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAY1D;;;;;;;OAOG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAgBpE;;;;;;;;;OASG;IACH,MAAM,CAAC,YAAY,CAClB,GAAG,EAAE,MAAM,EAAE,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,GACb,MAAM,EAAE,GAAG,IAAI;IAelB;;;;;;;OAOG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAQhE;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,WAAW,EAAE,MAAM,GACjB;QACF,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;QACvE,cAAc,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;KACxE;CA6DD"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { OPNS_CONTRACT, OPNS_DIFFICULTY, OPNS_GENESIS } from '@1sat/types';
|
|
2
|
+
import { BigNumber, Hash, OP, Script, TransactionSignature, UnlockingScript, Utils, } from '@bsv/sdk';
|
|
3
|
+
/** OpNS covenant contract as a byte array (the compiled sCrypt prefix). */
|
|
4
|
+
export const OPNS_CONTRACT_BYTES = Utils.toArray(OPNS_CONTRACT, 'hex');
|
|
5
|
+
/** Genesis outpoint bytes embedded in every node's state. */
|
|
6
|
+
export const OPNS_GENESIS_BYTES = Utils.toArray(OPNS_GENESIS, 'hex');
|
|
7
|
+
/** Ordinal inscription bitcom address for OpNS names. */
|
|
8
|
+
const OPNS_BITCOM = '1opNSUJVbBc2Vf8LFNSoywGGK4jMcGVrC';
|
|
9
|
+
/** OpNS content type. */
|
|
10
|
+
const OPNS_CONTENT_TYPE = 'application/op-ns';
|
|
11
|
+
/**
|
|
12
|
+
* OpNS - Ordinals Name System covenant template.
|
|
13
|
+
*
|
|
14
|
+
* A node output locks the compiled covenant plus a stateful OP_RETURN trailer
|
|
15
|
+
* carrying {genesis, claimed, domain, pow}. Spending it mines one character:
|
|
16
|
+
* the keyless unlock pushes char + nonce + ownerScript + trailingOutputs +
|
|
17
|
+
* the BIP-143 preimage (SIGHASH_ALL | ANYONECANPAY | FORKID), and the covenant
|
|
18
|
+
* validates the three mandated outputs (restated parent, child node, name
|
|
19
|
+
* inscription) against its own introspected state.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const node = OpNS.decode(parentTx.outputs[1].lockingScript)
|
|
24
|
+
* const child = OpNS.lock([0], node.domain + 'h', solutionHash)
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export default class OpNS {
|
|
28
|
+
/**
|
|
29
|
+
* Builds a node locking script: the compiled covenant followed by the
|
|
30
|
+
* stateful OP_RETURN trailer.
|
|
31
|
+
*
|
|
32
|
+
* @param claimed - Claimed-character bitfield (little-endian)
|
|
33
|
+
* @param domain - The name mined so far
|
|
34
|
+
* @param pow - The sha256d hash the node was mined to (32 bytes)
|
|
35
|
+
* @returns The node locking script
|
|
36
|
+
*/
|
|
37
|
+
static lock(claimed, domain, pow) {
|
|
38
|
+
const state = new Script()
|
|
39
|
+
.writeOpCode(OP.OP_RETURN)
|
|
40
|
+
.writeOpCode(OP.OP_FALSE)
|
|
41
|
+
.writeBin(OPNS_GENESIS_BYTES)
|
|
42
|
+
.writeBin(claimed)
|
|
43
|
+
.writeBin(Utils.toArray(domain, 'utf8'))
|
|
44
|
+
.writeBin(pow);
|
|
45
|
+
const stateBin = state.toBinary();
|
|
46
|
+
const writer = new Utils.Writer();
|
|
47
|
+
writer.write(stateBin);
|
|
48
|
+
writer.writeUInt32LE(stateBin.length - 1);
|
|
49
|
+
writer.writeUInt8(0);
|
|
50
|
+
return Script.fromBinary([...OPNS_CONTRACT_BYTES, ...writer.toArray()]);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Decodes a node's state from its locking script.
|
|
54
|
+
*
|
|
55
|
+
* @param script - The locking script to decode
|
|
56
|
+
* @returns Decoded node state, or null if not an OpNS node
|
|
57
|
+
*/
|
|
58
|
+
static decode(script) {
|
|
59
|
+
try {
|
|
60
|
+
const bin = script.toBinary();
|
|
61
|
+
for (let i = 0; i < OPNS_CONTRACT_BYTES.length; i++) {
|
|
62
|
+
if (bin[i] !== OPNS_CONTRACT_BYTES[i])
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
// State starts after the contract plus OP_RETURN + OP_FALSE.
|
|
66
|
+
const state = Script.fromBinary(bin.slice(OPNS_CONTRACT_BYTES.length + 2));
|
|
67
|
+
const genesis = state.chunks[0]?.data;
|
|
68
|
+
if (genesis == null)
|
|
69
|
+
return null;
|
|
70
|
+
for (let i = 0; i < OPNS_GENESIS_BYTES.length; i++) {
|
|
71
|
+
if (genesis[i] !== OPNS_GENESIS_BYTES[i])
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
const domainData = state.chunks[2]?.data ?? [];
|
|
75
|
+
return {
|
|
76
|
+
claimed: state.chunks[1]?.data ?? [],
|
|
77
|
+
domain: Utils.toUTF8(domainData),
|
|
78
|
+
pow: state.chunks[3]?.data ?? [],
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Sets the bit for a claimed character in the node's bitfield.
|
|
87
|
+
*
|
|
88
|
+
* @param claimed - Current claimed bitfield (little-endian)
|
|
89
|
+
* @param char - Character byte to mark claimed
|
|
90
|
+
* @returns Updated claimed bitfield
|
|
91
|
+
*/
|
|
92
|
+
static claimBit(claimed, char) {
|
|
93
|
+
let bits = 0n;
|
|
94
|
+
for (const b of [...claimed].reverse())
|
|
95
|
+
bits = (bits << 8n) | BigInt(b);
|
|
96
|
+
bits |= 1n << BigInt(char);
|
|
97
|
+
const out = [];
|
|
98
|
+
for (let v = bits; v > 0n; v >>= 8n)
|
|
99
|
+
out.unshift(Number(v & 0xffn));
|
|
100
|
+
// Sign guard: keep the value positive when the top byte's MSB is set.
|
|
101
|
+
if ((out[0] & 0x80) !== 0)
|
|
102
|
+
out.unshift(0);
|
|
103
|
+
return out.reverse();
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Builds the 1Sat ordinal inscription for a mined name, locked to
|
|
107
|
+
* ownerScript.
|
|
108
|
+
*
|
|
109
|
+
* @param domain - The mined name
|
|
110
|
+
* @param ownerScript - The owner's locking script (prefix)
|
|
111
|
+
* @returns The inscription locking script
|
|
112
|
+
*/
|
|
113
|
+
static buildInscription(domain, ownerScript) {
|
|
114
|
+
return new Script()
|
|
115
|
+
.writeScript(ownerScript)
|
|
116
|
+
.writeOpCode(OP.OP_FALSE)
|
|
117
|
+
.writeOpCode(OP.OP_IF)
|
|
118
|
+
.writeBin(Utils.toArray('ord', 'utf8'))
|
|
119
|
+
.writeOpCode(OP.OP_1)
|
|
120
|
+
.writeBin(Utils.toArray(OPNS_CONTENT_TYPE, 'utf8'))
|
|
121
|
+
.writeOpCode(OP.OP_0)
|
|
122
|
+
.writeBin(Utils.toArray(domain, 'utf8'))
|
|
123
|
+
.writeOpCode(OP.OP_ENDIF)
|
|
124
|
+
.writeOpCode(OP.OP_RETURN)
|
|
125
|
+
.writeBin(Utils.toArray(OPNS_BITCOM, 'utf8'))
|
|
126
|
+
.writeBin(OPNS_GENESIS_BYTES);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Tests whether a nonce solves the proof-of-work for a character: the
|
|
130
|
+
* top OPNS_DIFFICULTY bits of the reversed sha256d(pow ‖ char ‖ nonce)
|
|
131
|
+
* must be zero.
|
|
132
|
+
*
|
|
133
|
+
* @param pow - The node's pow root (32 bytes)
|
|
134
|
+
* @param char - Character byte being mined
|
|
135
|
+
* @param nonce - Candidate nonce (32 bytes)
|
|
136
|
+
* @returns The solution hash if valid, otherwise null
|
|
137
|
+
*/
|
|
138
|
+
static testSolution(pow, char, nonce) {
|
|
139
|
+
const preimage = [...pow, char, ...nonce];
|
|
140
|
+
const hash = Hash.sha256(Hash.sha256(preimage));
|
|
141
|
+
const fullBytes = Math.floor(OPNS_DIFFICULTY / 8);
|
|
142
|
+
for (let i = 0; i < fullBytes; i++) {
|
|
143
|
+
if (hash[31 - i] !== 0)
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
const rem = OPNS_DIFFICULTY % 8;
|
|
147
|
+
if (rem > 0) {
|
|
148
|
+
const mask = (0xff << (8 - rem)) & 0xff;
|
|
149
|
+
if ((hash[31 - fullBytes] & mask) !== 0)
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
return hash;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Serializes a transaction output (8-byte LE value + varint length +
|
|
156
|
+
* script) as the covenant expects in trailingOutputs.
|
|
157
|
+
*
|
|
158
|
+
* @param satoshis - Output value
|
|
159
|
+
* @param script - Locking script bytes
|
|
160
|
+
* @returns Serialized output bytes
|
|
161
|
+
*/
|
|
162
|
+
static buildOutput(satoshis, script) {
|
|
163
|
+
const writer = new Utils.Writer();
|
|
164
|
+
writer.writeUInt64LEBn(new BigNumber(satoshis));
|
|
165
|
+
writer.writeVarIntNum(script.length);
|
|
166
|
+
writer.write(script);
|
|
167
|
+
return writer.toArray();
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Builds the keyless covenant unlock for a mined character. The unlock
|
|
171
|
+
* pushes char, nonce, ownerScript, the serialized trailing outputs (those
|
|
172
|
+
* beyond the three mandated by the covenant), and the BIP-143 preimage.
|
|
173
|
+
*
|
|
174
|
+
* @param char - Character byte being mined
|
|
175
|
+
* @param nonce - The winning nonce (32 bytes)
|
|
176
|
+
* @param ownerScript - The owner's locking script for the name
|
|
177
|
+
* @returns Unlock template with sign and estimateLength methods
|
|
178
|
+
*/
|
|
179
|
+
static unlock(char, nonce, ownerScript) {
|
|
180
|
+
return {
|
|
181
|
+
sign: async (tx, inputIndex) => {
|
|
182
|
+
const input = tx.inputs[inputIndex];
|
|
183
|
+
const sourceTXID = input.sourceTXID ?? input.sourceTransaction?.id('hex');
|
|
184
|
+
if (!sourceTXID) {
|
|
185
|
+
throw new Error('The input sourceTXID or sourceTransaction is required for signing.');
|
|
186
|
+
}
|
|
187
|
+
const sourceOutput = input.sourceTransaction?.outputs[input.sourceOutputIndex];
|
|
188
|
+
if (!sourceOutput?.satoshis || !sourceOutput.lockingScript) {
|
|
189
|
+
throw new Error('The input sourceTransaction is required for signing the covenant.');
|
|
190
|
+
}
|
|
191
|
+
const preimage = TransactionSignature.format({
|
|
192
|
+
sourceTXID,
|
|
193
|
+
sourceOutputIndex: input.sourceOutputIndex,
|
|
194
|
+
sourceSatoshis: sourceOutput.satoshis,
|
|
195
|
+
transactionVersion: tx.version,
|
|
196
|
+
otherInputs: [],
|
|
197
|
+
inputIndex,
|
|
198
|
+
outputs: tx.outputs,
|
|
199
|
+
inputSequence: input.sequence ?? 0xffffffff,
|
|
200
|
+
subscript: sourceOutput.lockingScript,
|
|
201
|
+
lockTime: tx.lockTime,
|
|
202
|
+
scope: TransactionSignature.SIGHASH_ALL |
|
|
203
|
+
TransactionSignature.SIGHASH_ANYONECANPAY |
|
|
204
|
+
TransactionSignature.SIGHASH_FORKID,
|
|
205
|
+
});
|
|
206
|
+
// Trailing outputs are those beyond the three the covenant mandates.
|
|
207
|
+
const trailing = [];
|
|
208
|
+
for (const out of tx.outputs.slice(3)) {
|
|
209
|
+
trailing.push(...OpNS.buildOutput(out.satoshis ?? 0, (out.lockingScript ?? new Script()).toBinary()));
|
|
210
|
+
}
|
|
211
|
+
return new UnlockingScript()
|
|
212
|
+
.writeBin([char])
|
|
213
|
+
.writeBin(nonce)
|
|
214
|
+
.writeBin(ownerScript.toBinary())
|
|
215
|
+
.writeBin(trailing)
|
|
216
|
+
.writeBin(preimage);
|
|
217
|
+
},
|
|
218
|
+
estimateLength: async (tx, inputIndex) => {
|
|
219
|
+
return (await OpNS.unlock(char, nonce, ownerScript).sign(tx, inputIndex)).toBinary().length;
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=opns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opns.js","sourceRoot":"","sources":["../../src/opns/opns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EACN,SAAS,EACT,IAAI,EACJ,EAAE,EACF,MAAM,EAEN,oBAAoB,EACpB,eAAe,EACf,KAAK,GACL,MAAM,UAAU,CAAA;AAEjB,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;AAEtE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;AAEpE,yDAAyD;AACzD,MAAM,WAAW,GAAG,mCAAmC,CAAA;AAEvD,yBAAyB;AACzB,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AAY7C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,IAAI;IACxB;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,CAAC,OAAiB,EAAE,MAAc,EAAE,GAAa;QAC3D,MAAM,KAAK,GAAG,IAAI,MAAM,EAAE;aACxB,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC;aACzB,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC;aACxB,QAAQ,CAAC,kBAAkB,CAAC;aAC5B,QAAQ,CAAC,OAAO,CAAC;aACjB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACvC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACf,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;QAEjC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAA;QACjC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACtB,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACzC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAEpB,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,mBAAmB,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACxE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,MAAc;QAC3B,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAA;YACnD,CAAC;YACD,6DAA6D;YAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;YAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAA;YACrC,IAAI,OAAO,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAA;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAA;YACtD,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAA;YAC9C,OAAO;gBACN,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE;gBACpC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;gBAChC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE;aAChC,CAAA;QACF,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,IAAI,CAAA;QACZ,CAAC;IACF,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAiB,EAAE,IAAY;QAC9C,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE;YAAE,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACvE,IAAI,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;QAE1B,MAAM,GAAG,GAAa,EAAE,CAAA;QACxB,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE;YAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;QACnE,sEAAsE;QACtE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACzC,OAAO,GAAG,CAAC,OAAO,EAAE,CAAA;IACrB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAc,EAAE,WAAmB;QAC1D,OAAO,IAAI,MAAM,EAAE;aACjB,WAAW,CAAC,WAAW,CAAC;aACxB,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC;aACxB,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC;aACrB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACtC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;aACpB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;aAClD,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;aACpB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACvC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC;aACxB,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC;aACzB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;aAC5C,QAAQ,CAAC,kBAAkB,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,YAAY,CAClB,GAAa,EACb,IAAY,EACZ,KAAe;QAEf,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAA;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;QACpC,CAAC;QACD,MAAM,GAAG,GAAG,eAAe,GAAG,CAAC,CAAA;QAC/B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;QACrD,CAAC;QACD,OAAO,IAAI,CAAA;IACZ,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,WAAW,CAAC,QAAgB,EAAE,MAAgB;QACpD,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAA;QACjC,MAAM,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC/C,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACpB,OAAO,MAAM,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,CACZ,IAAY,EACZ,KAAe,EACf,WAAmB;QAKnB,OAAO;YACN,IAAI,EAAE,KAAK,EAAE,EAAe,EAAE,UAAkB,EAAE,EAAE;gBACnD,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;gBACnC,MAAM,UAAU,GACf,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;gBACvD,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CACd,oEAAoE,CACpE,CAAA;gBACF,CAAC;gBACD,MAAM,YAAY,GACjB,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;gBAC1D,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;oBAC5D,MAAM,IAAI,KAAK,CACd,mEAAmE,CACnE,CAAA;gBACF,CAAC;gBAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC;oBAC5C,UAAU;oBACV,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;oBAC1C,cAAc,EAAE,YAAY,CAAC,QAAQ;oBACrC,kBAAkB,EAAE,EAAE,CAAC,OAAO;oBAC9B,WAAW,EAAE,EAAE;oBACf,UAAU;oBACV,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,aAAa,EAAE,KAAK,CAAC,QAAQ,IAAI,UAAU;oBAC3C,SAAS,EAAE,YAAY,CAAC,aAAa;oBACrC,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,KAAK,EACJ,oBAAoB,CAAC,WAAW;wBAChC,oBAAoB,CAAC,oBAAoB;wBACzC,oBAAoB,CAAC,cAAc;iBACpC,CAAC,CAAA;gBAEF,qEAAqE;gBACrE,MAAM,QAAQ,GAAa,EAAE,CAAA;gBAC7B,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvC,QAAQ,CAAC,IAAI,CACZ,GAAG,IAAI,CAAC,WAAW,CAClB,GAAG,CAAC,QAAQ,IAAI,CAAC,EACjB,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAC9C,CACD,CAAA;gBACF,CAAC;gBAED,OAAO,IAAI,eAAe,EAAE;qBAC1B,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;qBAChB,QAAQ,CAAC,KAAK,CAAC;qBACf,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;qBAChC,QAAQ,CAAC,QAAQ,CAAC;qBAClB,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACrB,CAAC;YACD,cAAc,EAAE,KAAK,EAAE,EAAe,EAAE,UAAkB,EAAE,EAAE;gBAC7D,OAAO,CACN,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAChE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAA;YACpB,CAAC;SACD,CAAA;IACF,CAAC;CACD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1sat/templates",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.26",
|
|
4
4
|
"description": "Bitcoin script templates for 1Sat Ordinals SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
],
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@1sat/types": "0.0.
|
|
35
|
+
"@1sat/types": "0.0.36",
|
|
36
36
|
"cbor2": "^2.3.0"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
|
-
"@bsv/sdk": "^2.
|
|
39
|
+
"@bsv/sdk": "^2.1.6"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@bsv/sdk": "^2.
|
|
42
|
+
"@bsv/sdk": "^2.1.6",
|
|
43
43
|
"typescript": "^5.9.3"
|
|
44
44
|
}
|
|
45
45
|
}
|