@opcat-labs/scrypt-ts-opcat 2.1.2 → 2.1.3

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 (58) hide show
  1. package/assets/.templates/smart-contract/builtin-libs/backtrace.scrypt.tpl +1 -1
  2. package/assets/.templates/smart-contract/builtin-libs/genesis.scrypt.tpl +2 -2
  3. package/assets/smart-contract/builtin-libs/backtrace.scrypt +14 -14
  4. package/assets/smart-contract/builtin-libs/byteStringReader.scrypt +5 -5
  5. package/assets/smart-contract/builtin-libs/byteStringWriter.scrypt +6 -6
  6. package/assets/smart-contract/builtin-libs/contextUtils.scrypt +16 -16
  7. package/assets/smart-contract/builtin-libs/genesis.scrypt +8 -8
  8. package/assets/smart-contract/builtin-libs/p2pk.scrypt +1 -1
  9. package/assets/smart-contract/builtin-libs/p2pkh.scrypt +1 -1
  10. package/assets/smart-contract/builtin-libs/stateLib.scrypt +1 -1
  11. package/assets/smart-contract/builtin-libs/stateUtils.scrypt +1 -1
  12. package/assets/smart-contract/builtin-libs/stdUtils.scrypt +12 -12
  13. package/assets/smart-contract/builtin-libs/txHashPreimageUtils.scrypt +7 -7
  14. package/assets/smart-contract/builtin-libs/txUtils.scrypt +12 -12
  15. package/assets/smart-contract/types/structs.scrypt +8 -8
  16. package/dist/cjs/smart-contract/abstractContract.js.map +1 -1
  17. package/dist/cjs/smart-contract/builtin-libs/backtrace.cjs +1 -1
  18. package/dist/cjs/smart-contract/builtin-libs/genesis.cjs +106 -13
  19. package/dist/cjs/smart-contract/builtin-libs/genesis.js.map +1 -1
  20. package/dist/cjs/smart-contract/methods/checkDataSig.cjs +55 -0
  21. package/dist/cjs/smart-contract/methods/checkDataSig.js.map +1 -0
  22. package/dist/cjs/smart-contract/methods/checkSHPreimage.cjs +33 -2
  23. package/dist/cjs/smart-contract/methods/checkSHPreimage.js.map +1 -1
  24. package/dist/cjs/smart-contract/smartContract.cjs +36 -0
  25. package/dist/cjs/smart-contract/smartContract.js.map +1 -1
  26. package/dist/cjs/utils/index.cjs +7 -1
  27. package/dist/cjs/utils/index.js.map +1 -1
  28. package/dist/cjs/utils/sigUtils.cjs +171 -0
  29. package/dist/cjs/utils/sigUtils.js.map +1 -0
  30. package/dist/esm/smart-contract/abstractContract.js.map +1 -1
  31. package/dist/esm/smart-contract/builtin-libs/backtrace.js +1 -1
  32. package/dist/esm/smart-contract/builtin-libs/genesis.js +106 -13
  33. package/dist/esm/smart-contract/builtin-libs/genesis.js.map +1 -1
  34. package/dist/esm/smart-contract/methods/checkDataSig.js +51 -0
  35. package/dist/esm/smart-contract/methods/checkDataSig.js.map +1 -0
  36. package/dist/esm/smart-contract/methods/checkSHPreimage.js +34 -3
  37. package/dist/esm/smart-contract/methods/checkSHPreimage.js.map +1 -1
  38. package/dist/esm/smart-contract/smartContract.js +36 -0
  39. package/dist/esm/smart-contract/smartContract.js.map +1 -1
  40. package/dist/esm/utils/index.js +1 -0
  41. package/dist/esm/utils/index.js.map +1 -1
  42. package/dist/esm/utils/sigUtils.js +162 -0
  43. package/dist/esm/utils/sigUtils.js.map +1 -0
  44. package/dist/types/smart-contract/abstractContract.d.ts +16 -0
  45. package/dist/types/smart-contract/abstractContract.d.ts.map +1 -1
  46. package/dist/types/smart-contract/methods/checkDataSig.d.ts +22 -0
  47. package/dist/types/smart-contract/methods/checkDataSig.d.ts.map +1 -0
  48. package/dist/types/smart-contract/methods/checkSHPreimage.d.ts +9 -0
  49. package/dist/types/smart-contract/methods/checkSHPreimage.d.ts.map +1 -1
  50. package/dist/types/smart-contract/smartContract.d.ts +22 -0
  51. package/dist/types/smart-contract/smartContract.d.ts.map +1 -1
  52. package/dist/types/utils/index.d.ts +1 -0
  53. package/dist/types/utils/index.d.ts.map +1 -1
  54. package/dist/types/utils/sigUtils.d.ts +106 -0
  55. package/dist/types/utils/sigUtils.d.ts.map +1 -0
  56. package/package.json +2 -2
  57. package/src/smart-contract/builtin-libs/backtrace.ts +1 -1
  58. package/src/smart-contract/builtin-libs/genesis.ts +106 -13
@@ -1 +1 @@
1
- {"version":3,"file":"smartContract.js","sourceRoot":"","sources":["../../../src/smart-contract/smartContract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartContract.js","sourceRoot":"","sources":["../../../src/smart-contract/smartContract.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,5 @@ export { getBackTraceInfo, toGenesisOutpoint, toTxHashPreimage } from './proof.j
6
6
  export * as scriptNumber from './script_number.js';
7
7
  export * from './contractHeader.js';
8
8
  export { MAX_OP_PUSH_DATA_SIZE } from './constants.js';
9
+ export { signPreimage, signSHPreimage, signData, signDataWithInternalKey, verifyPreimageSig } from './sigUtils.js';
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,SAAS,EACT,cAAc,EACd,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnF,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AAEnD,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EAAC,qBAAqB,EAAC,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,SAAS,EACT,cAAc,EACd,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnF,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AAEnD,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EAAC,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Off-chain signing utilities for preimage verification.
3
+ *
4
+ * This module provides functions to generate signatures off-chain using a
5
+ * hardcoded private key. The signatures can then be verified on-chain using
6
+ * checkDataSig, avoiding the need for on-chain signature generation which
7
+ * bloats script size.
8
+ *
9
+ * @module sigUtils
10
+ */
11
+ import { crypto, PrivateKey, PublicKey, Networks } from '@opcat-labs/opcat';
12
+ import { hash256, sha256 } from '../smart-contract/fns/hashes.js';
13
+ import { Sig } from '../smart-contract/types/primitives.js';
14
+ import { ContextUtils } from '../smart-contract/builtin-libs/contextUtils.js';
15
+ import { encodeSHPreimage } from './preimage.js';
16
+ const { ECDSA, Signature } = crypto;
17
+ /**
18
+ * The internal private key derived from ContextUtils.privKey.
19
+ * This ensures consistency between off-chain signing and on-chain verification.
20
+ */
21
+ const INTERNAL_KEY = PrivateKey.fromHex(ContextUtils.privKey.toString(16).padStart(64, '0'), Networks.defaultNetwork);
22
+ /**
23
+ * Signs a serialized preimage off-chain using the internal private key (from ContextUtils).
24
+ *
25
+ * This function generates a DER-encoded ECDSA signature that can be verified
26
+ * on-chain using checkSig. The message is hashed with hash256 (double SHA256)
27
+ * to match the transaction interpreter's sighash calculation.
28
+ *
29
+ * Note: For checkDataSig (which uses single SHA256), a different signature
30
+ * would be needed. The JavaScript runtime uses this hash256 version for
31
+ * compatibility with checkSig verification.
32
+ *
33
+ * @param preimage - The serialized preimage bytes to sign
34
+ * @param sigHashType - The signature hash type (default: 0x01 for SIGHASH_ALL)
35
+ * @returns A DER-encoded signature with sigHashType appended
36
+ */
37
+ export function signPreimage(preimage, sigHashType = 0x01) {
38
+ // Compute hash256 of the preimage (double SHA256 for checkSig compatibility)
39
+ // Reverse the hash to match checkSigImpl's verification format
40
+ const hash = Buffer.from(hash256(preimage), 'hex').reverse();
41
+ // Sign the hash using ECDSA with internal key
42
+ const signature = ECDSA.sign(hash, INTERNAL_KEY, 'little');
43
+ // Get DER encoded signature
44
+ const derSig = signature.toDER();
45
+ // Append sigHashType byte
46
+ const sigHashTypeByte = Buffer.from([sigHashType]);
47
+ const fullSig = Buffer.concat([derSig, sigHashTypeByte]);
48
+ return Sig(fullSig.toString('hex'));
49
+ }
50
+ /**
51
+ * Signs a SHPreimage off-chain by first serializing it.
52
+ *
53
+ * This is a convenience wrapper around signPreimage that handles
54
+ * the serialization of the SHPreimage struct.
55
+ *
56
+ * Note: Uses encodeSHPreimage (same as checkSigImpl) to ensure
57
+ * the signature matches what checkSig expects.
58
+ *
59
+ * @param shPreimage - The SHPreimage struct to sign
60
+ * @param sigHashType - The signature hash type (default: 0x01 for SIGHASH_ALL).
61
+ * Should match shPreimage.sigHashType for verification to succeed.
62
+ * @returns A DER-encoded signature with sigHashType appended
63
+ */
64
+ export function signSHPreimage(shPreimage, sigHashType = 0x01) {
65
+ // Serialize the SHPreimage using encodeSHPreimage (same as checkSigImpl uses)
66
+ const preimage = encodeSHPreimage(shPreimage);
67
+ return signPreimage(preimage, sigHashType);
68
+ }
69
+ /**
70
+ * Signs arbitrary data off-chain using the internal key (ContextUtils.privKey).
71
+ *
72
+ * This function generates a pure DER-encoded ECDSA signature (NO sighash type)
73
+ * that can be verified on-chain using checkDataSig. The message is hashed with
74
+ * single SHA256 to match OP_CHECKSIGFROMSTACK behavior.
75
+ *
76
+ * Note: This uses the internal key from ContextUtils. For signing with
77
+ * a custom private key (e.g., Oracle scenarios), use signData() instead.
78
+ *
79
+ * @param message - The message bytes to sign
80
+ * @returns A pure DER-encoded signature (no sighash type appended)
81
+ */
82
+ export function signDataWithInternalKey(message) {
83
+ return signData(INTERNAL_KEY, message);
84
+ }
85
+ /**
86
+ * Signs arbitrary data with a custom private key for use with checkDataSig (OP_CHECKSIGFROMSTACK).
87
+ *
88
+ * This function generates a pure DER-encoded ECDSA signature (NO sighash type)
89
+ * that can be verified on-chain using checkDataSig. The message is hashed with
90
+ * single SHA256 to match OP_CHECKSIGFROMSTACK behavior.
91
+ *
92
+ * Use this method for Oracle scenarios where you need to sign data with a specific
93
+ * private key that the contract will verify against.
94
+ *
95
+ * @param privateKey - The private key to sign with
96
+ * @param message - The message bytes to sign
97
+ * @returns A pure DER-encoded signature (no sighash type appended)
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * // Oracle signs price data
102
+ * const oraclePrivKey = PrivateKey.fromWIF('...');
103
+ * const priceData = toByteString('BTC/USD:50000', true);
104
+ * const sig = signData(oraclePrivKey, priceData);
105
+ *
106
+ * // Contract verifies using checkDataSig
107
+ * // assert(this.checkDataSig(sig, priceData, oraclePubKey));
108
+ * ```
109
+ */
110
+ export function signData(privateKey, message) {
111
+ // Compute single SHA256 of the message for checkDataSig compatibility
112
+ // Reverse the hash for little-endian format (same as OP_CHECKSIGFROMSTACK)
113
+ const hash = Buffer.from(sha256(message), 'hex').reverse();
114
+ // Sign the hash using ECDSA
115
+ const signature = ECDSA.sign(hash, privateKey, 'little');
116
+ // Get pure DER encoded signature (NO sighash type for OP_CHECKSIGFROMSTACK)
117
+ const derSig = signature.toDER();
118
+ return Sig(derSig.toString('hex'));
119
+ }
120
+ /**
121
+ * Signs a SHPreimage off-chain for use with checkDataSig (OP_CHECKSIGFROMSTACK).
122
+ *
123
+ * This is a convenience wrapper that serializes the SHPreimage and signs it
124
+ * using single SHA256 (matching checkDataSig behavior).
125
+ *
126
+ * @param shPreimage - The SHPreimage struct to sign
127
+ * @returns A pure DER-encoded signature (no sighash type appended)
128
+ */
129
+ export function signSHPreimageForCheckDataSig(shPreimage) {
130
+ // Serialize the SHPreimage using encodeSHPreimage
131
+ const preimage = encodeSHPreimage(shPreimage);
132
+ return signDataWithInternalKey(preimage);
133
+ }
134
+ /**
135
+ * Verifies a preimage signature off-chain.
136
+ *
137
+ * This function can be used to verify signatures before submitting
138
+ * transactions, ensuring the signature is valid.
139
+ *
140
+ * @param sig - The signature to verify
141
+ * @param preimage - The preimage that was signed
142
+ * @returns true if the signature is valid, false otherwise
143
+ */
144
+ export function verifyPreimageSig(sig, preimage) {
145
+ try {
146
+ // Compute SHA256 hash of the preimage
147
+ const hash = Buffer.from(sha256(preimage), 'hex');
148
+ // Get the signature bytes (without sigHashType)
149
+ const sigBytes = Buffer.from(sig, 'hex');
150
+ const derSig = sigBytes.slice(0, sigBytes.length - 1);
151
+ // Parse the DER signature
152
+ const signature = Signature.fromDER(derSig);
153
+ // Get public key from ContextUtils
154
+ const publicKey = PublicKey.fromHex(ContextUtils.pubKey);
155
+ // Verify the signature
156
+ return ECDSA.verify(hash, signature, publicKey, 'little');
157
+ }
158
+ catch (e) {
159
+ return false;
160
+ }
161
+ }
162
+ //# sourceMappingURL=sigUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sigUtils.js","sourceRoot":"","sources":["../../../src/utils/sigUtils.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,22 @@ export declare abstract class AbstractContract {
28
28
  * @see https://en.bitcoin.it/wiki/OP_CHECKSIG
29
29
  */
30
30
  abstract checkSig(signature: Sig, publickey: PubKey, errorMsg?: string): boolean;
31
+ /**
32
+ * Verifies an ECDSA signature against an explicit message and public key.
33
+ * Unlike checkSig which uses the transaction preimage as the implicit message,
34
+ * checkDataSig allows verifying signatures on arbitrary data.
35
+ *
36
+ * Uses OP_CHECKSIGFROMSTACK (0xba) under the hood.
37
+ * Stack order: <sig> <msg> <pubKey> (bottom to top)
38
+ *
39
+ * @param signature - The signature to verify (DER encoded with sighash type)
40
+ * @param message - The message that was signed (will be SHA256 hashed once)
41
+ * @param publickey - The public key to verify the signature against
42
+ * @returns true if the signature is valid, false otherwise
43
+ * @onchain
44
+ * @category Signature Verification
45
+ */
46
+ abstract checkDataSig(signature: Sig, message: ByteString, publickey: PubKey): boolean;
31
47
  /**
32
48
  * Implements an absolute time-based lock on a transaction until a specified `locktime` has been reached.
33
49
  * The lock can be based on either block height or a UNIX timestamp.
@@ -1 +1 @@
1
- {"version":3,"file":"abstractContract.d.ts","sourceRoot":"","sources":["../../../src/smart-contract/abstractContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;GAIG;AACH,8BAAsB,gBAAgB;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;IAEzD;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,IAAI,UAAU;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAEhF;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAE5C;;;;;;OAMG;IAGH;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;IAEnD;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAEvB;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,EAAE,SAAS,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,UAAU;IAIpE,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,UAAU;IAI/D;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO;IAE1E;;;;;;;OAOG;IACH,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,GAAG,OAAO;IAEhG;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,GAAG,OAAO;CAC7F"}
1
+ {"version":3,"file":"abstractContract.d.ts","sourceRoot":"","sources":["../../../src/smart-contract/abstractContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;GAIG;AACH,8BAAsB,gBAAgB;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;IAEzD;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,IAAI,UAAU;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAEhF;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAEtF;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAE5C;;;;;;OAMG;IAGH;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;IAEnD;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAEvB;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,EAAE,SAAS,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,UAAU;IAIpE,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,UAAU;IAI/D;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO;IAE1E;;;;;;;OAOG;IACH,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,GAAG,OAAO;IAEhG;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,GAAG,OAAO;CAC7F"}
@@ -0,0 +1,22 @@
1
+ import { Sig, PubKey, ByteString } from '../types/index.js';
2
+ import { AbstractContract } from '../abstractContract.js';
3
+ /**
4
+ * Verifies a signature against an explicit message and public key.
5
+ * Unlike checkSig which uses the transaction preimage as the implicit message,
6
+ * checkDataSig allows verifying signatures on arbitrary data.
7
+ *
8
+ * @ignore
9
+ * @param self - The contract instance (unused, kept for consistency with other check methods)
10
+ * @param signature - The signature to verify in hex format (pure DER encoded, NO sighash type)
11
+ * @param message - The message that was signed (will be SHA256 hashed once)
12
+ * @param publickey - The public key in hex format to verify the signature against
13
+ * @returns true if the signature is valid for the given message and public key,
14
+ * false if invalid or if encoding checks fail
15
+ *
16
+ * @remarks
17
+ * - Uses SHA256 single hash on the message (not hash256 double hash)
18
+ * - Stack order for OP_CHECKSIGFROMSTACK: <sig> <msg> <pubKey> (bottom to top)
19
+ * - Unlike OP_CHECKSIG, OP_CHECKSIGFROMSTACK does NOT require sighash type appended to signature
20
+ */
21
+ export declare function checkDataSigImpl(self: AbstractContract, signature: Sig, message: ByteString, publickey: PubKey): boolean;
22
+ //# sourceMappingURL=checkDataSig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkDataSig.d.ts","sourceRoot":"","sources":["../../../../src/smart-contract/methods/checkDataSig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAE9B,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,GAAG,EACd,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAmCT"}
@@ -2,6 +2,15 @@ import { AbstractContract } from '../abstractContract.js';
2
2
  import { SHPreimage } from '../types/index.js';
3
3
  /**
4
4
  * Verifies a signature against the contract's public key using the provided SH preimage.
5
+ *
6
+ * This function uses a two-step verification process:
7
+ * 1. checkDataSig - verifies the signature against sha256(serialized_preimage)
8
+ * Since checkDataSig internally applies sha256, it becomes sha256(sha256(preimage)) = hash256(preimage)
9
+ * 2. checkSig - verifies the signature against the actual transaction preimage (hash256)
10
+ *
11
+ * The signature is expected to be pre-generated off-chain over hash256(preimage)
12
+ * and injected via the _injectedPreimageSig property on SmartContract instances.
13
+ *
5
14
  * @ignore
6
15
  * @param self - The contract instance to verify against
7
16
  * @param shPreimage - The SH preimage containing the signature to verify
@@ -1 +1 @@
1
- {"version":3,"file":"checkSHPreimage.d.ts","sourceRoot":"","sources":["../../../../src/smart-contract/methods/checkSHPreimage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAO,MAAM,mBAAmB,CAAC;AAKpD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAG3F"}
1
+ {"version":3,"file":"checkSHPreimage.d.ts","sourceRoot":"","sources":["../../../../src/smart-contract/methods/checkSHPreimage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAO,MAAM,mBAAmB,CAAC;AAQpD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CA8B3F"}
@@ -70,6 +70,12 @@ export declare class SmartContract<StateT extends OpcatState = undefined> extend
70
70
  */
71
71
  private _data;
72
72
  private contractHeader;
73
+ /**
74
+ * Injected preimage signature for checkPreimage verification.
75
+ * Set during _autoInject and used by checkSHPreimageImpl.
76
+ * @internal
77
+ */
78
+ _injectedPreimageSig?: Sig;
73
79
  /**
74
80
  * Locking script corresponding to the SmartContract
75
81
  */
@@ -126,6 +132,22 @@ export declare class SmartContract<StateT extends OpcatState = undefined> extend
126
132
  * @category Signature Verification
127
133
  */
128
134
  checkMultiSig(signatures: Sig[], publickeys: PubKey[]): boolean;
135
+ /**
136
+ * Verifies an ECDSA signature against an explicit message and public key.
137
+ * Unlike checkSig which uses the transaction preimage as the implicit message,
138
+ * checkDataSig allows verifying signatures on arbitrary data.
139
+ *
140
+ * Uses OP_CHECKSIGFROMSTACK (0xba) under the hood.
141
+ * Stack order: <sig> <msg> <pubKey> (bottom to top)
142
+ *
143
+ * @param signature - The signature to verify (DER encoded with sighash type)
144
+ * @param message - The message that was signed (will be SHA256 hashed once)
145
+ * @param publickey - The public key to verify the signature against
146
+ * @returns true if the signature is valid, false otherwise
147
+ * @onchain
148
+ * @category Signature Verification
149
+ */
150
+ checkDataSig(signature: Sig, message: ByteString, publickey: PubKey): boolean;
129
151
  /**
130
152
  * A built-in function to create an [change output]{@link https://en.bitcoin.it/wiki/Change}.
131
153
  * @onchain
@@ -1 +1 @@
1
- {"version":3,"file":"smartContract.d.ts","sourceRoot":"","sources":["../../../src/smart-contract/smartContract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartContract.d.ts","sourceRoot":"","sources":["../../../src/smart-contract/smartContract.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,5 @@ export { getBackTraceInfo, toGenesisOutpoint, toTxHashPreimage } from './proof.j
6
6
  export * as scriptNumber from './script_number.js';
7
7
  export * from './contractHeader.js';
8
8
  export { MAX_OP_PUSH_DATA_SIZE } from './constants.js';
9
+ export { signPreimage, signSHPreimage, signData, signDataWithInternalKey, verifyPreimageSig } from './sigUtils.js';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,SAAS,EACT,cAAc,EACd,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnF,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AAEnD,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EAAC,qBAAqB,EAAC,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,SAAS,EACT,cAAc,EACd,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnF,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AAEnD,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EAAC,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Off-chain signing utilities for preimage verification.
3
+ *
4
+ * This module provides functions to generate signatures off-chain using a
5
+ * hardcoded private key. The signatures can then be verified on-chain using
6
+ * checkDataSig, avoiding the need for on-chain signature generation which
7
+ * bloats script size.
8
+ *
9
+ * @module sigUtils
10
+ */
11
+ import { PrivateKey } from '@opcat-labs/opcat';
12
+ import { ByteString, Sig, SigHashPreimage } from '../smart-contract/types/primitives.js';
13
+ import { SHPreimage } from '../smart-contract/types/structs.js';
14
+ /**
15
+ * Signs a serialized preimage off-chain using the internal private key (from ContextUtils).
16
+ *
17
+ * This function generates a DER-encoded ECDSA signature that can be verified
18
+ * on-chain using checkSig. The message is hashed with hash256 (double SHA256)
19
+ * to match the transaction interpreter's sighash calculation.
20
+ *
21
+ * Note: For checkDataSig (which uses single SHA256), a different signature
22
+ * would be needed. The JavaScript runtime uses this hash256 version for
23
+ * compatibility with checkSig verification.
24
+ *
25
+ * @param preimage - The serialized preimage bytes to sign
26
+ * @param sigHashType - The signature hash type (default: 0x01 for SIGHASH_ALL)
27
+ * @returns A DER-encoded signature with sigHashType appended
28
+ */
29
+ export declare function signPreimage(preimage: SigHashPreimage | ByteString, sigHashType?: number): Sig;
30
+ /**
31
+ * Signs a SHPreimage off-chain by first serializing it.
32
+ *
33
+ * This is a convenience wrapper around signPreimage that handles
34
+ * the serialization of the SHPreimage struct.
35
+ *
36
+ * Note: Uses encodeSHPreimage (same as checkSigImpl) to ensure
37
+ * the signature matches what checkSig expects.
38
+ *
39
+ * @param shPreimage - The SHPreimage struct to sign
40
+ * @param sigHashType - The signature hash type (default: 0x01 for SIGHASH_ALL).
41
+ * Should match shPreimage.sigHashType for verification to succeed.
42
+ * @returns A DER-encoded signature with sigHashType appended
43
+ */
44
+ export declare function signSHPreimage(shPreimage: SHPreimage, sigHashType?: number): Sig;
45
+ /**
46
+ * Signs arbitrary data off-chain using the internal key (ContextUtils.privKey).
47
+ *
48
+ * This function generates a pure DER-encoded ECDSA signature (NO sighash type)
49
+ * that can be verified on-chain using checkDataSig. The message is hashed with
50
+ * single SHA256 to match OP_CHECKSIGFROMSTACK behavior.
51
+ *
52
+ * Note: This uses the internal key from ContextUtils. For signing with
53
+ * a custom private key (e.g., Oracle scenarios), use signData() instead.
54
+ *
55
+ * @param message - The message bytes to sign
56
+ * @returns A pure DER-encoded signature (no sighash type appended)
57
+ */
58
+ export declare function signDataWithInternalKey(message: ByteString): Sig;
59
+ /**
60
+ * Signs arbitrary data with a custom private key for use with checkDataSig (OP_CHECKSIGFROMSTACK).
61
+ *
62
+ * This function generates a pure DER-encoded ECDSA signature (NO sighash type)
63
+ * that can be verified on-chain using checkDataSig. The message is hashed with
64
+ * single SHA256 to match OP_CHECKSIGFROMSTACK behavior.
65
+ *
66
+ * Use this method for Oracle scenarios where you need to sign data with a specific
67
+ * private key that the contract will verify against.
68
+ *
69
+ * @param privateKey - The private key to sign with
70
+ * @param message - The message bytes to sign
71
+ * @returns A pure DER-encoded signature (no sighash type appended)
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * // Oracle signs price data
76
+ * const oraclePrivKey = PrivateKey.fromWIF('...');
77
+ * const priceData = toByteString('BTC/USD:50000', true);
78
+ * const sig = signData(oraclePrivKey, priceData);
79
+ *
80
+ * // Contract verifies using checkDataSig
81
+ * // assert(this.checkDataSig(sig, priceData, oraclePubKey));
82
+ * ```
83
+ */
84
+ export declare function signData(privateKey: PrivateKey, message: ByteString): Sig;
85
+ /**
86
+ * Signs a SHPreimage off-chain for use with checkDataSig (OP_CHECKSIGFROMSTACK).
87
+ *
88
+ * This is a convenience wrapper that serializes the SHPreimage and signs it
89
+ * using single SHA256 (matching checkDataSig behavior).
90
+ *
91
+ * @param shPreimage - The SHPreimage struct to sign
92
+ * @returns A pure DER-encoded signature (no sighash type appended)
93
+ */
94
+ export declare function signSHPreimageForCheckDataSig(shPreimage: SHPreimage): Sig;
95
+ /**
96
+ * Verifies a preimage signature off-chain.
97
+ *
98
+ * This function can be used to verify signatures before submitting
99
+ * transactions, ensuring the signature is valid.
100
+ *
101
+ * @param sig - The signature to verify
102
+ * @param preimage - The preimage that was signed
103
+ * @returns true if the signature is valid, false otherwise
104
+ */
105
+ export declare function verifyPreimageSig(sig: Sig, preimage: SigHashPreimage | ByteString): boolean;
106
+ //# sourceMappingURL=sigUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sigUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/sigUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAU,UAAU,EAAuB,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAehE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,EAAE,WAAW,GAAE,MAAa,GAAG,GAAG,CAgBpG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,GAAE,MAAa,GAAG,GAAG,CAItF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,UAAU,GAAG,GAAG,CAEhE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,GAAG,CAYzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,UAAU,GAAG,GAAG,CAIzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,GAAG,UAAU,GAAG,OAAO,CAoB3F"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@opcat-labs/scrypt-ts-opcat",
3
3
  "description": "A TypeScript library for building OPCAT smart contracts with sCrypt.",
4
- "version": "2.1.2",
4
+ "version": "2.1.3",
5
5
  "author": "OP_CAT Labs",
6
6
  "main": "./dist/cjs/index.cjs",
7
7
  "module": "./dist/esm/index.js",
@@ -68,7 +68,7 @@
68
68
  },
69
69
  "dependencies": {
70
70
  "@noble/curves": "^1.8.1",
71
- "@opcat-labs/opcat": "2.1.2",
71
+ "@opcat-labs/opcat": "2.1.3",
72
72
  "bip174": "^3.0.0-rc.1",
73
73
  "cbor2": "^2.0.1",
74
74
  "cross-fetch": "^4.1.0",
@@ -43,7 +43,7 @@ export class Backtrace extends SmartContractLib {
43
43
  * @see packages/scrypt-ts-opcat/test/local-test/genesis.test.ts - GENESIS_SCRIPT_HASH validation tests
44
44
  */
45
45
  @prop()
46
- static readonly GENESIS_SCRIPT_HASH: ByteString = toByteString('8f6157664f8f7cd43e6bba7f3209bb803d4d0fb2fb6e59fdc548989ed3901f15');
46
+ static readonly GENESIS_SCRIPT_HASH: ByteString = toByteString('836c4b45ab7a625549ca7c799b02d3304adf996557929ee809613e602d26c1f8');
47
47
 
48
48
  /**
49
49
  * Verifies that the transaction hash preimage matches the previous transaction hash