@1sat/templates 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/bitcom/aip.d.ts +88 -0
  2. package/dist/bitcom/aip.d.ts.map +1 -0
  3. package/dist/bitcom/aip.js +205 -0
  4. package/dist/bitcom/aip.js.map +1 -0
  5. package/dist/bitcom/b.d.ts +99 -0
  6. package/dist/bitcom/b.d.ts.map +1 -0
  7. package/dist/bitcom/b.js +206 -0
  8. package/dist/bitcom/b.js.map +1 -0
  9. package/dist/bitcom/bap.d.ts +126 -0
  10. package/dist/bitcom/bap.d.ts.map +1 -0
  11. package/dist/bitcom/bap.js +334 -0
  12. package/dist/bitcom/bap.js.map +1 -0
  13. package/dist/bitcom/bitcom.d.ts +75 -0
  14. package/dist/bitcom/bitcom.d.ts.map +1 -0
  15. package/dist/bitcom/bitcom.js +186 -0
  16. package/dist/bitcom/bitcom.js.map +1 -0
  17. package/dist/bitcom/map.d.ts +90 -0
  18. package/dist/bitcom/map.d.ts.map +1 -0
  19. package/dist/bitcom/map.js +215 -0
  20. package/dist/bitcom/map.js.map +1 -0
  21. package/dist/bitcom/sigma.d.ts +93 -0
  22. package/dist/bitcom/sigma.d.ts.map +1 -0
  23. package/dist/bitcom/sigma.js +175 -0
  24. package/dist/bitcom/sigma.js.map +1 -0
  25. package/dist/bsocial/bsocial.d.ts +152 -0
  26. package/dist/bsocial/bsocial.d.ts.map +1 -0
  27. package/dist/bsocial/bsocial.js +397 -0
  28. package/dist/bsocial/bsocial.js.map +1 -0
  29. package/dist/bsv20/bsv20.d.ts +277 -0
  30. package/dist/bsv20/bsv20.d.ts.map +1 -0
  31. package/dist/bsv20/bsv20.js +544 -0
  32. package/dist/bsv20/bsv20.js.map +1 -0
  33. package/dist/bsv21/bsv21.d.ts +231 -0
  34. package/dist/bsv21/bsv21.d.ts.map +1 -0
  35. package/dist/bsv21/bsv21.js +475 -0
  36. package/dist/bsv21/bsv21.js.map +1 -0
  37. package/dist/index.d.ts +35 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +31 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/inscription/inscription.d.ts +165 -0
  42. package/dist/inscription/inscription.d.ts.map +1 -0
  43. package/dist/inscription/inscription.js +401 -0
  44. package/dist/inscription/inscription.js.map +1 -0
  45. package/dist/lock/lock.d.ts +92 -0
  46. package/dist/lock/lock.d.ts.map +1 -0
  47. package/dist/lock/lock.js +283 -0
  48. package/dist/lock/lock.js.map +1 -0
  49. package/dist/ordlock/ordlock.d.ts +126 -0
  50. package/dist/ordlock/ordlock.d.ts.map +1 -0
  51. package/dist/ordlock/ordlock.js +316 -0
  52. package/dist/ordlock/ordlock.js.map +1 -0
  53. package/dist/signer.d.ts +39 -0
  54. package/dist/signer.d.ts.map +1 -0
  55. package/dist/signer.js +54 -0
  56. package/dist/signer.js.map +1 -0
  57. package/package.json +43 -0
@@ -0,0 +1,175 @@
1
+ import { BSM, BigNumber, Script, Signature, SignedMessage, Utils, } from '@bsv/sdk';
2
+ import { Algorithm } from 'sigma-protocol';
3
+ import BitCom from './bitcom.js';
4
+ /**
5
+ * SIGMA protocol identifier
6
+ */
7
+ export const SIGMA_PREFIX = 'SIGMA';
8
+ /**
9
+ * Re-export Algorithm from sigma-protocol for consistency
10
+ */
11
+ export { Algorithm as SigmaAlgorithm };
12
+ /**
13
+ * SIGMA (Secure Identity for Global Message Authentication) implementation
14
+ *
15
+ * SIGMA enables cryptographic signing of blockchain content by combining:
16
+ * - Input hash: SHA256 of the outpoint (txid + vout) from a specific input
17
+ * - Data hash: SHA256 of the script data before the SIGMA protocol marker
18
+ *
19
+ * Supports both BSM (Bitcoin Signed Message) and BRC-77 signing algorithms.
20
+ */
21
+ export default class Sigma {
22
+ data;
23
+ constructor(data) {
24
+ this.data = data;
25
+ }
26
+ /**
27
+ * Extract SIGMA signatures from BitCom transaction
28
+ */
29
+ static decode(bitcom) {
30
+ const sigmas = [];
31
+ if (bitcom?.protocols?.length === 0) {
32
+ return sigmas;
33
+ }
34
+ for (let protoIdx = 0; protoIdx < bitcom.protocols.length; protoIdx++) {
35
+ const protocol = bitcom.protocols[protoIdx];
36
+ if (protocol.protocol === SIGMA_PREFIX) {
37
+ try {
38
+ const script = Script.fromBinary(protocol.script);
39
+ const chunks = script.chunks;
40
+ if (chunks?.length < 4) {
41
+ continue;
42
+ }
43
+ const sigma = new Sigma({
44
+ bitcomIndex: protoIdx,
45
+ algorithm: Utils.toUTF8(chunks[0].data ?? []),
46
+ address: Utils.toUTF8(chunks[1].data ?? []),
47
+ signature: Array.from(chunks[2].data ?? []),
48
+ vin: Number.parseInt(Utils.toUTF8(chunks[3].data ?? []), 10),
49
+ valid: undefined,
50
+ });
51
+ sigmas.push(sigma);
52
+ }
53
+ catch { }
54
+ }
55
+ }
56
+ return sigmas;
57
+ }
58
+ /**
59
+ * Decode SIGMA signatures directly from a Script
60
+ */
61
+ static decodeFromScript(script) {
62
+ const bitcom = BitCom.decode(script);
63
+ if (bitcom == null) {
64
+ return [];
65
+ }
66
+ return Sigma.decode(bitcom);
67
+ }
68
+ /**
69
+ * Create SIGMA signature for data
70
+ *
71
+ * @param inputHash - SHA256 hash of the input outpoint
72
+ * @param dataHash - SHA256 hash of the script data
73
+ * @param privateKey - Private key for signing
74
+ * @param options - Additional signing options
75
+ */
76
+ static sign(inputHash, dataHash, privateKey, options = {}) {
77
+ const algorithm = options.algorithm ?? Algorithm.BSM;
78
+ const vin = options.vin ?? 0;
79
+ const address = privateKey.toAddress().toString();
80
+ // Combine hashes to create message (same as sigma-protocol)
81
+ const messageHash = [...inputHash, ...dataHash];
82
+ let signatureArray;
83
+ if (algorithm === Algorithm.BRC77) {
84
+ // BRC-77 signing using SignedMessage
85
+ const brc77Sig = SignedMessage.sign(messageHash, privateKey, options.verifier);
86
+ signatureArray = brc77Sig;
87
+ }
88
+ else {
89
+ // BSM signing
90
+ const sig = BSM.sign(messageHash, privateKey, 'raw');
91
+ const magicHashValue = BSM.magicHash(messageHash);
92
+ const recoveryFactor = sig.CalculateRecoveryFactor(privateKey.toPublicKey(), new BigNumber(magicHashValue));
93
+ const compactSig = sig.toCompact(recoveryFactor, true, 'base64');
94
+ signatureArray = Array.from(Utils.toArray(compactSig, 'base64'));
95
+ }
96
+ return new Sigma({
97
+ algorithm,
98
+ address,
99
+ signature: signatureArray,
100
+ vin,
101
+ valid: true,
102
+ });
103
+ }
104
+ /**
105
+ * Verify SIGMA signature against provided hashes
106
+ *
107
+ * @param inputHash - SHA256 hash of the input outpoint
108
+ * @param dataHash - SHA256 hash of the script data
109
+ * @param recipientPrivateKey - For BRC-77 private signatures, the recipient's key
110
+ */
111
+ verifyWithHashes(inputHash, dataHash, recipientPrivateKey) {
112
+ try {
113
+ const messageHash = [...inputHash, ...dataHash];
114
+ if (this.data.algorithm === Algorithm.BRC77) {
115
+ // BRC-77 verification using SignedMessage
116
+ this.data.valid = SignedMessage.verify(messageHash, this.data.signature, recipientPrivateKey);
117
+ return this.data.valid;
118
+ }
119
+ // BSM verification
120
+ const signatureBase64 = Utils.toBase64(this.data.signature);
121
+ const sig = Signature.fromCompact(signatureBase64, 'base64');
122
+ for (let recovery = 0; recovery < 4; recovery++) {
123
+ try {
124
+ const publicKey = sig.RecoverPublicKey(recovery, new BigNumber(BSM.magicHash(messageHash)));
125
+ if (BSM.verify(messageHash, sig, publicKey) &&
126
+ publicKey.toAddress().toString() === this.data.address) {
127
+ this.data.valid = true;
128
+ return true;
129
+ }
130
+ }
131
+ catch {
132
+ // Try next recovery factor
133
+ }
134
+ }
135
+ this.data.valid = false;
136
+ return false;
137
+ }
138
+ catch {
139
+ this.data.valid = false;
140
+ return false;
141
+ }
142
+ }
143
+ /**
144
+ * Check if signature was previously verified
145
+ */
146
+ verify() {
147
+ return this.data.valid === true;
148
+ }
149
+ /**
150
+ * Generate locking script for SIGMA within BitCom
151
+ */
152
+ lock() {
153
+ const script = new Script();
154
+ script.writeBin(Utils.toArray(this.data.algorithm, 'utf8'));
155
+ script.writeBin(Utils.toArray(this.data.address, 'utf8'));
156
+ script.writeBin(this.data.signature);
157
+ script.writeBin(Utils.toArray(this.data.vin.toString(), 'utf8'));
158
+ const protocols = [
159
+ {
160
+ protocol: SIGMA_PREFIX,
161
+ script: script.toBinary(),
162
+ pos: 0,
163
+ },
164
+ ];
165
+ const bitcom = new BitCom(protocols);
166
+ return bitcom.lock();
167
+ }
168
+ /**
169
+ * Unlock method is not available for SIGMA scripts
170
+ */
171
+ unlock() {
172
+ throw new Error('SIGMA signatures cannot be unlocked');
173
+ }
174
+ }
175
+ //# sourceMappingURL=sigma.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sigma.js","sourceRoot":"","sources":["../../src/bitcom/sigma.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ import { type LockingScript, Script, type ScriptTemplate, type Transaction, type UnlockingScript } from '@bsv/sdk';
2
+ import type { Signer } from '../signer.js';
3
+ export declare enum BSocialActionType {
4
+ POST = "post",
5
+ LIKE = "like",
6
+ UNLIKE = "unlike",
7
+ FOLLOW = "follow",
8
+ UNFOLLOW = "unfollow",
9
+ MESSAGE = "message",
10
+ VIDEO = "video"
11
+ }
12
+ export declare enum BSocialContext {
13
+ TX = "tx",
14
+ CHANNEL = "channel",
15
+ BAP_ID = "bapID",
16
+ PROVIDER = "provider",
17
+ VIDEO_ID = "videoID",
18
+ GEOHASH = "geohash",
19
+ BTC_TX = "btcTx",
20
+ ETH_TX = "ethTx"
21
+ }
22
+ export interface BSocialAction {
23
+ app: string;
24
+ type: BSocialActionType;
25
+ context?: BSocialContext;
26
+ contextValue?: string;
27
+ subcontext?: BSocialContext;
28
+ subcontextValue?: string;
29
+ }
30
+ export interface BSocialPost extends BSocialAction {
31
+ content: string;
32
+ mediaType?: string;
33
+ encoding?: string;
34
+ filename?: string;
35
+ }
36
+ export interface BSocialLike extends BSocialAction {
37
+ txid: string;
38
+ }
39
+ export interface BSocialFollow extends BSocialAction {
40
+ bapId: string;
41
+ }
42
+ export interface BSocialMessage extends BSocialAction {
43
+ content: string;
44
+ mediaType?: string;
45
+ encoding?: string;
46
+ }
47
+ export interface BSocialVideo extends BSocialAction {
48
+ provider: string;
49
+ videoID: string;
50
+ duration?: number;
51
+ start?: number;
52
+ }
53
+ export interface BSocialDecoded {
54
+ action: BSocialAction;
55
+ content?: string;
56
+ attachments?: unknown[];
57
+ tags?: string[][];
58
+ aip?: unknown;
59
+ }
60
+ /**
61
+ * BSocial class implementing ScriptTemplate.
62
+ *
63
+ * This class provides methods to create BSocial protocol transactions for social media
64
+ * actions like posts, likes, follows, etc. following BitcoinSchema.org standards.
65
+ */
66
+ export default class BSocial implements ScriptTemplate {
67
+ private readonly action;
68
+ private readonly content?;
69
+ private readonly tags?;
70
+ private readonly signer?;
71
+ constructor(action: BSocialAction, content?: string, tags?: string[], signer?: Signer);
72
+ /**
73
+ * Creates a BSocial locking script for various social actions
74
+ *
75
+ * @returns A locking script for the BSocial action
76
+ */
77
+ lock(): Promise<LockingScript>;
78
+ /**
79
+ * Unlock method is not available for BSocial scripts, throws exception.
80
+ */
81
+ unlock(): {
82
+ sign: (tx: Transaction, inputIndex: number) => Promise<UnlockingScript>;
83
+ estimateLength: () => Promise<number>;
84
+ };
85
+ /**
86
+ * Creates a post transaction
87
+ *
88
+ * @param post The post data
89
+ * @param tags Optional tags for the post
90
+ * @param signer Optional private key for AIP signature
91
+ * @returns A locking script for the post
92
+ */
93
+ static createPost(post: BSocialPost, tags?: string[], signer?: Signer): Promise<LockingScript>;
94
+ /**
95
+ * Creates a like transaction
96
+ *
97
+ * @param like The like data
98
+ * @param signer Optional private key for AIP signature
99
+ * @returns A locking script for the like
100
+ */
101
+ static createLike(like: BSocialLike, signer?: Signer): Promise<LockingScript>;
102
+ /**
103
+ * Creates a follow transaction
104
+ *
105
+ * @param follow The follow data
106
+ * @param signer Optional private key for AIP signature
107
+ * @returns A locking script for the follow
108
+ */
109
+ static createFollow(follow: BSocialFollow, signer?: Signer): Promise<LockingScript>;
110
+ /**
111
+ * Decodes a BSocial transaction script
112
+ *
113
+ * @param script The script to decode
114
+ * @returns Decoded BSocial data
115
+ */
116
+ static decode(script: Script): BSocialDecoded | null;
117
+ /**
118
+ * Signs data with AIP protocol
119
+ *
120
+ * @param privateKey The private key to sign with
121
+ * @param message The message to sign
122
+ * @returns Base64 encoded signature
123
+ */
124
+ static signAIP(signer: Signer, message: string): Promise<string>;
125
+ /**
126
+ * Creates a reply transaction
127
+ *
128
+ * @param reply The reply data
129
+ * @param replyTxId The transaction ID being replied to
130
+ * @param tags Optional tags for the reply
131
+ * @param signer Optional private key for AIP signature
132
+ * @returns A locking script for the reply
133
+ */
134
+ static createReply(reply: BSocialPost, replyTxId: string, tags?: string[], signer?: Signer): Promise<LockingScript>;
135
+ /**
136
+ * Creates a message transaction
137
+ *
138
+ * @param message The message data
139
+ * @param signer Optional private key for AIP signature
140
+ * @returns A locking script for the message
141
+ */
142
+ static createMessage(message: BSocialMessage, signer?: Signer): Promise<LockingScript>;
143
+ /**
144
+ * Creates a video transaction
145
+ *
146
+ * @param video The video data including provider and videoID
147
+ * @param signer Optional private key for AIP signature
148
+ * @returns A locking script for the video
149
+ */
150
+ static createVideo(video: BSocialVideo, signer?: Signer): Promise<LockingScript>;
151
+ }
152
+ //# sourceMappingURL=bsocial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bsocial.d.ts","sourceRoot":"","sources":["../../src/bsocial/bsocial.ts"],"names":[],"mappings":"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"}