@totemsdk/core 1.0.9 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +5 -5
- package/dist/Streamable.js +54 -31
- package/dist/adapters/index.js +18 -8
- package/dist/adapters/types.js +19 -8
- package/dist/binio.js +5 -1
- package/dist/bip39.js +24 -14
- package/dist/derive.js +11 -7
- package/dist/index.js +130 -22
- package/dist/javaStreamables.js +49 -30
- package/dist/lease/LeaseMonitor.js +7 -3
- package/dist/lease/LeaseStore.js +7 -3
- package/dist/lease/WatermarkStore.js +7 -3
- package/dist/lease/index.js +13 -4
- package/dist/lease-client.js +8 -3
- package/dist/minima32.js +22 -13
- package/dist/minimaWireSerializer.js +20 -14
- package/dist/mmr.js +35 -23
- package/dist/mx.js +10 -1
- package/dist/params.js +9 -5
- package/dist/script.js +12 -7
- package/dist/scripts/contract-helpers.js +37 -26
- package/dist/scripts/dapp-types.js +11 -6
- package/dist/scripts/index.js +38 -4
- package/dist/scripts/types.js +26 -12
- package/dist/scripts/witness-serializer.js +48 -30
- package/dist/transaction.js +55 -46
- package/dist/treekey.js +74 -58
- package/dist/tx/TransactionLifecycle.js +11 -5
- package/dist/tx/TransactionReceiptStore.js +7 -3
- package/dist/tx/TransactionService.js +14 -10
- package/dist/tx/index.js +11 -3
- package/dist/tx/types.js +2 -1
- package/dist/util.js +5 -1
- package/dist/utils.js +12 -5
- package/dist/verify.js +36 -25
- package/dist/version.js +5 -2
- package/dist/wots.d.ts +2 -2
- package/dist/wots.js +94 -64
- package/package.json +50 -6
- package/src/Streamable.d.ts +0 -268
- package/src/Streamable.js +0 -416
- package/src/Streamable.ts +0 -567
- package/src/__tests__/Streamable.parity.test.ts +0 -422
- package/src/__tests__/perAddressDerivation.parity.test.ts +0 -152
- package/src/__tests__/roottree-prepare.test.ts +0 -101
- package/src/__tests__/wots-parity.test.ts +0 -289
- package/src/adapters/index.d.ts +0 -190
- package/src/adapters/index.js +0 -117
- package/src/adapters/index.ts +0 -301
- package/src/adapters/types.ts +0 -235
- package/src/addr.oracle.test.ts +0 -25
- package/src/address.test.ts +0 -55
- package/src/binio.ts +0 -21
- package/src/bip39.d.ts +0 -91
- package/src/bip39.js +0 -427
- package/src/bip39.ts +0 -432
- package/src/derive.d.ts +0 -2
- package/src/derive.js +0 -13
- package/src/derive.ts +0 -11
- package/src/index.d.ts +0 -26
- package/src/index.js +0 -128
- package/src/index.test.ts +0 -5
- package/src/index.ts +0 -221
- package/src/javaStreamables.d.ts +0 -233
- package/src/javaStreamables.js +0 -332
- package/src/javaStreamables.ts +0 -403
- package/src/lease/LeaseMonitor.d.ts +0 -44
- package/src/lease/LeaseMonitor.js +0 -111
- package/src/lease/LeaseMonitor.ts +0 -157
- package/src/lease/LeaseStore.d.ts +0 -57
- package/src/lease/LeaseStore.js +0 -148
- package/src/lease/LeaseStore.ts +0 -203
- package/src/lease/WatermarkStore.d.ts +0 -61
- package/src/lease/WatermarkStore.js +0 -206
- package/src/lease/WatermarkStore.ts +0 -270
- package/src/lease/index.d.ts +0 -14
- package/src/lease/index.js +0 -22
- package/src/lease/index.ts +0 -41
- package/src/lease-client.d.ts +0 -31
- package/src/lease-client.js +0 -44
- package/src/lease-client.ts +0 -69
- package/src/minima32.d.ts +0 -10
- package/src/minima32.js +0 -113
- package/src/minima32.test.ts +0 -11
- package/src/minima32.ts +0 -127
- package/src/minimaWireSerializer.d.ts +0 -189
- package/src/minimaWireSerializer.js +0 -311
- package/src/minimaWireSerializer.test.ts +0 -466
- package/src/minimaWireSerializer.ts +0 -117
- package/src/mmr.d.ts +0 -157
- package/src/mmr.js +0 -340
- package/src/mmr.oracle.test.ts +0 -28
- package/src/mmr.ts +0 -429
- package/src/mx.test.ts +0 -25
- package/src/mx.ts +0 -1
- package/src/params.d.ts +0 -29
- package/src/params.d.ts.map +0 -1
- package/src/params.js +0 -20
- package/src/params.js.map +0 -1
- package/src/params.ts +0 -44
- package/src/script.d.ts +0 -7
- package/src/script.js +0 -27
- package/src/script.ts +0 -24
- package/src/scripts/contract-helpers.ts +0 -609
- package/src/scripts/dapp-types.ts +0 -240
- package/src/scripts/index.ts +0 -22
- package/src/scripts/types.d.ts +0 -81
- package/src/scripts/types.js +0 -145
- package/src/scripts/types.ts +0 -247
- package/src/scripts/witness-serializer.ts +0 -384
- package/src/transaction.ts +0 -430
- package/src/treekey.d.ts +0 -383
- package/src/treekey.js +0 -774
- package/src/treekey.parity.test.ts +0 -459
- package/src/treekey.ts +0 -975
- package/src/tx/TransactionLifecycle.d.ts +0 -55
- package/src/tx/TransactionLifecycle.js +0 -188
- package/src/tx/TransactionLifecycle.ts +0 -280
- package/src/tx/TransactionReceiptStore.d.ts +0 -36
- package/src/tx/TransactionReceiptStore.js +0 -89
- package/src/tx/TransactionReceiptStore.ts +0 -112
- package/src/tx/TransactionService.d.ts +0 -31
- package/src/tx/TransactionService.js +0 -140
- package/src/tx/TransactionService.ts +0 -252
- package/src/tx/index.d.ts +0 -13
- package/src/tx/index.js +0 -20
- package/src/tx/index.ts +0 -44
- package/src/tx/types.d.ts +0 -80
- package/src/tx/types.js +0 -6
- package/src/tx/types.ts +0 -130
- package/src/util.d.ts +0 -1
- package/src/util.js +0 -5
- package/src/util.ts +0 -1
- package/src/utils.d.ts +0 -8
- package/src/utils.js +0 -42
- package/src/utils.ts +0 -38
- package/src/verify.ts +0 -210
- package/src/version.ts +0 -13
- package/src/wots.d.ts +0 -224
- package/src/wots.d.ts.map +0 -1
- package/src/wots.js +0 -565
- package/src/wots.js.map +0 -1
- package/src/wots.ts +0 -651
- package/test-vectors.json +0 -45
package/package.json
CHANGED
|
@@ -1,45 +1,69 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@totemsdk/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"description": "Core cryptographic primitives for Totem SDK",
|
|
5
|
-
"type": "module",
|
|
6
5
|
"main": "dist/index.js",
|
|
7
6
|
"types": "dist/index.d.ts",
|
|
8
7
|
"exports": {
|
|
9
8
|
".": {
|
|
10
9
|
"types": "./dist/index.d.ts",
|
|
10
|
+
"require": "./dist/index.js",
|
|
11
11
|
"import": "./dist/index.js"
|
|
12
12
|
},
|
|
13
13
|
"./adapters": {
|
|
14
14
|
"types": "./dist/adapters/index.d.ts",
|
|
15
|
+
"require": "./dist/adapters/index.js",
|
|
15
16
|
"import": "./dist/adapters/index.js"
|
|
16
17
|
},
|
|
17
18
|
"./adapters/types": {
|
|
18
19
|
"types": "./dist/adapters/types.d.ts",
|
|
20
|
+
"require": "./dist/adapters/types.js",
|
|
19
21
|
"import": "./dist/adapters/types.js"
|
|
20
22
|
},
|
|
21
23
|
"./lease": {
|
|
22
24
|
"types": "./dist/lease/index.d.ts",
|
|
25
|
+
"require": "./dist/lease/index.js",
|
|
23
26
|
"import": "./dist/lease/index.js"
|
|
24
27
|
},
|
|
25
28
|
"./tx": {
|
|
26
29
|
"types": "./dist/tx/index.d.ts",
|
|
30
|
+
"require": "./dist/tx/index.js",
|
|
27
31
|
"import": "./dist/tx/index.js"
|
|
28
32
|
},
|
|
29
33
|
"./scripts": {
|
|
30
34
|
"types": "./dist/scripts/index.d.ts",
|
|
35
|
+
"require": "./dist/scripts/index.js",
|
|
31
36
|
"import": "./dist/scripts/index.js"
|
|
32
37
|
},
|
|
33
38
|
"./test-vectors.json": "./test-vectors.json"
|
|
34
39
|
},
|
|
40
|
+
"typesVersions": {
|
|
41
|
+
"*": {
|
|
42
|
+
"adapters": [
|
|
43
|
+
"./dist/adapters/index.d.ts"
|
|
44
|
+
],
|
|
45
|
+
"adapters/types": [
|
|
46
|
+
"./dist/adapters/types.d.ts"
|
|
47
|
+
],
|
|
48
|
+
"lease": [
|
|
49
|
+
"./dist/lease/index.d.ts"
|
|
50
|
+
],
|
|
51
|
+
"tx": [
|
|
52
|
+
"./dist/tx/index.d.ts"
|
|
53
|
+
],
|
|
54
|
+
"scripts": [
|
|
55
|
+
"./dist/scripts/index.d.ts"
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
},
|
|
35
59
|
"files": [
|
|
36
60
|
"dist",
|
|
37
|
-
"
|
|
38
|
-
"
|
|
61
|
+
"README.md",
|
|
62
|
+
"LICENSE"
|
|
39
63
|
],
|
|
40
64
|
"dependencies": {},
|
|
41
65
|
"peerDependencies": {
|
|
42
|
-
"@noble/hashes": "
|
|
66
|
+
"@noble/hashes": "^2.0.0"
|
|
43
67
|
},
|
|
44
68
|
"peerDependenciesMeta": {
|
|
45
69
|
"@noble/hashes": {
|
|
@@ -50,7 +74,7 @@
|
|
|
50
74
|
"node": ">=16.0.0"
|
|
51
75
|
},
|
|
52
76
|
"devDependencies": {
|
|
53
|
-
"@noble/hashes": "^
|
|
77
|
+
"@noble/hashes": "^2.2.0",
|
|
54
78
|
"@types/jest": "^29.0.0",
|
|
55
79
|
"@types/node": "^20.0.0",
|
|
56
80
|
"jest": "^29.0.0",
|
|
@@ -61,6 +85,26 @@
|
|
|
61
85
|
"access": "public"
|
|
62
86
|
},
|
|
63
87
|
"license": "MIT",
|
|
88
|
+
"author": "Totem SDK",
|
|
89
|
+
"homepage": "https://totemsdk.com",
|
|
90
|
+
"bugs": {
|
|
91
|
+
"url": "https://github.com/MrGheek/axia-totem/issues"
|
|
92
|
+
},
|
|
93
|
+
"repository": {
|
|
94
|
+
"type": "git",
|
|
95
|
+
"url": "git+https://github.com/MrGheek/axia-totem.git",
|
|
96
|
+
"directory": "packages/totem-sdk/packages/core"
|
|
97
|
+
},
|
|
98
|
+
"keywords": [
|
|
99
|
+
"totem",
|
|
100
|
+
"totemsdk",
|
|
101
|
+
"minima",
|
|
102
|
+
"blockchain",
|
|
103
|
+
"quantum-resistant",
|
|
104
|
+
"wots",
|
|
105
|
+
"kissvm",
|
|
106
|
+
"utxo"
|
|
107
|
+
],
|
|
64
108
|
"scripts": {
|
|
65
109
|
"build": "tsc",
|
|
66
110
|
"clean": "rm -rf dist",
|
package/src/Streamable.d.ts
DELETED
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Streamable.ts - Canonical Java-Compatible Serialization Primitives
|
|
3
|
-
*
|
|
4
|
-
* This module provides byte-exact serialization functions matching
|
|
5
|
-
* Minima's Java Streamable interface and its implementations.
|
|
6
|
-
*
|
|
7
|
-
* JAVA REFERENCE CLASSES:
|
|
8
|
-
* - MiniData.writeDataStream(): 4-byte int length + raw bytes
|
|
9
|
-
* - MiniNumber.writeDataStream(): 1-byte scale + 1-byte len + BigInteger bytes
|
|
10
|
-
* - MiniString.writeDataStream(): delegates to MiniData(UTF-8 bytes)
|
|
11
|
-
* - MiniByte.writeDataStream(): single byte
|
|
12
|
-
* - Crypto.writeHashToStream(): 4-byte int length + hash bytes
|
|
13
|
-
* - MMREntryNumber.writeDataStream(): 1-byte len + BigInteger bytes
|
|
14
|
-
*
|
|
15
|
-
* CRITICAL NOTES:
|
|
16
|
-
* - MiniNumber uses 1-byte length, NOT 4-byte like MiniData
|
|
17
|
-
* - BigInteger.toByteArray() uses two's complement (leading 0 if high bit set)
|
|
18
|
-
* - Zero encodes as length=1, value=0x00
|
|
19
|
-
*
|
|
20
|
-
* Created: 2026-01-20
|
|
21
|
-
* Purpose: Single source of truth for all Minima type serialization
|
|
22
|
-
*/
|
|
23
|
-
export type Bytes = Uint8Array;
|
|
24
|
-
export declare function hexToBytes(hex: string): Uint8Array;
|
|
25
|
-
export declare function bytesToHex(bytes: Uint8Array): string;
|
|
26
|
-
export declare function concat(...arrays: Uint8Array[]): Uint8Array;
|
|
27
|
-
/**
|
|
28
|
-
* Encode a MiniByte per Java MiniByte.writeDataStream()
|
|
29
|
-
*
|
|
30
|
-
* Format: single byte (0-255)
|
|
31
|
-
*/
|
|
32
|
-
export declare function writeMiniByte(value: number | boolean): Uint8Array;
|
|
33
|
-
/**
|
|
34
|
-
* Encode a MiniData per Java MiniData.writeDataStream()
|
|
35
|
-
*
|
|
36
|
-
* Format: 4-byte big-endian int length + raw bytes
|
|
37
|
-
*/
|
|
38
|
-
export declare function writeMiniData(data: Uint8Array): Uint8Array;
|
|
39
|
-
/**
|
|
40
|
-
* Encode a MiniString per Java MiniString.writeDataStream()
|
|
41
|
-
*
|
|
42
|
-
* Format: MiniData encoding of UTF-8 bytes
|
|
43
|
-
* = 4-byte int length + UTF-8 bytes
|
|
44
|
-
*/
|
|
45
|
-
export declare function writeMiniString(str: string): Uint8Array;
|
|
46
|
-
/**
|
|
47
|
-
* Convert a BigInt to Java BigInteger.toByteArray() format.
|
|
48
|
-
*
|
|
49
|
-
* Java BigInteger uses two's complement:
|
|
50
|
-
* - Zero → [0x00]
|
|
51
|
-
* - Positive with high bit set → leading 0x00 byte
|
|
52
|
-
*
|
|
53
|
-
* @param value - The BigInt value (must be non-negative)
|
|
54
|
-
* @returns Uint8Array in two's complement format
|
|
55
|
-
*/
|
|
56
|
-
export declare function bigIntToByteArray(value: bigint): Uint8Array;
|
|
57
|
-
/**
|
|
58
|
-
* Encode a MiniNumber per Java MiniNumber.writeDataStream()
|
|
59
|
-
*
|
|
60
|
-
* Format:
|
|
61
|
-
* 1 byte: scale (number of decimal places, signed)
|
|
62
|
-
* 1 byte: length of unscaled BigInteger data
|
|
63
|
-
* N bytes: unscaled BigInteger in two's complement
|
|
64
|
-
*
|
|
65
|
-
* CRITICAL: Uses 1-byte length, NOT 4-byte like MiniData!
|
|
66
|
-
*
|
|
67
|
-
* @param value - The unscaled BigInt value
|
|
68
|
-
* @param scale - The scale (decimal places), default 0
|
|
69
|
-
*/
|
|
70
|
-
export declare function writeMiniNumber(value: bigint, scale?: number): Uint8Array;
|
|
71
|
-
/**
|
|
72
|
-
* Encode a hash per Java Crypto.writeHashToStream()
|
|
73
|
-
*
|
|
74
|
-
* Format: 4-byte big-endian int length + hash bytes
|
|
75
|
-
* (Same as MiniData)
|
|
76
|
-
*/
|
|
77
|
-
export declare function writeHashToStream(hash: Uint8Array): Uint8Array;
|
|
78
|
-
/**
|
|
79
|
-
* Encode an MMREntryNumber per Java MMREntryNumber.writeDataStream()
|
|
80
|
-
*
|
|
81
|
-
* Java source (MMREntryNumber.java):
|
|
82
|
-
* MiniNumber.WriteToStream(zOut, mNumber.scale()); // scale as MiniNumber
|
|
83
|
-
* MiniData.WriteToStream(zOut, mNumber.unscaledValue().toByteArray()); // unscaled as MiniData
|
|
84
|
-
*
|
|
85
|
-
* Format:
|
|
86
|
-
* - MiniNumber for scale (always 0 for integer values)
|
|
87
|
-
* - MiniData for unscaled BigInteger value
|
|
88
|
-
*
|
|
89
|
-
* For integer MMREntryNumber (scale=0), this encodes as:
|
|
90
|
-
* [00 01 00] - MiniNumber: scale=0, len=1, data=0x00
|
|
91
|
-
* [00 00 00 LL ...] - MiniData: 4-byte len + BigInteger bytes
|
|
92
|
-
*/
|
|
93
|
-
export declare function writeMMREntryNumber(value: bigint, scale?: number): Uint8Array;
|
|
94
|
-
/**
|
|
95
|
-
* StateVariable type constants from Java StateVariable.java
|
|
96
|
-
*/
|
|
97
|
-
export declare const STATETYPE_HEX = 1;
|
|
98
|
-
export declare const STATETYPE_NUMBER = 2;
|
|
99
|
-
export declare const STATETYPE_STRING = 4;
|
|
100
|
-
export declare const STATETYPE_BOOL = 8;
|
|
101
|
-
/**
|
|
102
|
-
* High-level StateVariable value type
|
|
103
|
-
*/
|
|
104
|
-
export interface StateVariableValue {
|
|
105
|
-
port: number;
|
|
106
|
-
value: string | bigint | boolean | Uint8Array;
|
|
107
|
-
type: 'bool' | 'number' | 'hex' | 'string';
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Normalize hex/address string to 0x format.
|
|
111
|
-
* Handles both Mx (Minima Base32) and 0x formats.
|
|
112
|
-
* Matches Java's StateVariable constructor behavior.
|
|
113
|
-
*
|
|
114
|
-
* Note: For Mx conversion, caller should use mxToHex from minima-base32
|
|
115
|
-
* This function handles 0x prefix normalization only.
|
|
116
|
-
*/
|
|
117
|
-
export declare function normalizeHexString(value: string): string;
|
|
118
|
-
/**
|
|
119
|
-
* Serialize a StateVariable per Java StateVariable.writeDataStream()
|
|
120
|
-
*
|
|
121
|
-
* Format:
|
|
122
|
-
* 1. port (MiniByte - 1 byte, 0-255)
|
|
123
|
-
* 2. type (MiniByte - 1 byte: HEX=1, NUMBER=2, STRING=4, BOOL=8)
|
|
124
|
-
* 3. data (format depends on type):
|
|
125
|
-
* - BOOL: MiniByte (1 byte: 0 or 1)
|
|
126
|
-
* - HEX: MiniData (4-byte length + hex bytes)
|
|
127
|
-
* - NUMBER: MiniNumber (1-byte scale + 1-byte len + data)
|
|
128
|
-
* - STRING: MiniString (4-byte length + UTF-8 with brackets)
|
|
129
|
-
*
|
|
130
|
-
* @param sv - StateVariable with high-level value
|
|
131
|
-
* @param mxToHex - Optional function to convert Mx addresses to 0x hex
|
|
132
|
-
*/
|
|
133
|
-
export declare function writeStateVariable(sv: StateVariableValue, mxToHex?: (addr: string) => string): Uint8Array;
|
|
134
|
-
/**
|
|
135
|
-
* MMRData interface matching Java MMRData structure
|
|
136
|
-
*/
|
|
137
|
-
export interface MMRData {
|
|
138
|
-
data: Uint8Array;
|
|
139
|
-
value: bigint;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Write MMRData per Java MMRData.writeDataStream()
|
|
143
|
-
*
|
|
144
|
-
* Java source (MMRData.java):
|
|
145
|
-
* mData.writeHashToStream(zOut); // 4-byte len + hash
|
|
146
|
-
* mValue.writeDataStream(zOut); // MiniNumber
|
|
147
|
-
*/
|
|
148
|
-
export declare function writeMMRData(mmrData: MMRData): Uint8Array;
|
|
149
|
-
/**
|
|
150
|
-
* MMRProofChunk interface matching Java MMRProofChunk structure
|
|
151
|
-
*/
|
|
152
|
-
export interface MMRProofChunk {
|
|
153
|
-
isLeft: boolean;
|
|
154
|
-
mmrData: MMRData;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Write MMRProofChunk per Java MMRProofChunk.writeDataStream()
|
|
158
|
-
*
|
|
159
|
-
* Java source (MMRProof.java inner class):
|
|
160
|
-
* mLeft.writeDataStream(zOut); // MiniByte (1 byte)
|
|
161
|
-
* mMMRData.writeDataStream(zOut); // MMRData
|
|
162
|
-
*/
|
|
163
|
-
export declare function writeMMRProofChunk(chunk: MMRProofChunk): Uint8Array;
|
|
164
|
-
/**
|
|
165
|
-
* MMRProof interface matching Java MMRProof structure
|
|
166
|
-
*/
|
|
167
|
-
export interface MMRProof {
|
|
168
|
-
blockTime: bigint;
|
|
169
|
-
chunks: MMRProofChunk[];
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Write MMRProof per Java MMRProof.writeDataStream()
|
|
173
|
-
*
|
|
174
|
-
* Java source (MMRProof.java):
|
|
175
|
-
* mBlockTime.writeDataStream(zOut); // MiniNumber
|
|
176
|
-
* MiniNumber.WriteToStream(zOut, len); // Array length as MiniNumber
|
|
177
|
-
* for each chunk: chunk.writeDataStream(zOut);
|
|
178
|
-
*/
|
|
179
|
-
export declare function writeMMRProof(proof: MMRProof): Uint8Array;
|
|
180
|
-
/**
|
|
181
|
-
* SignatureProof interface matching Java SignatureProof structure
|
|
182
|
-
*
|
|
183
|
-
* CRITICAL FIX (January 2026): Java's Winternitz.getPublicKey() returns a 32-byte DIGEST!
|
|
184
|
-
* BouncyCastle's WinternitzOTSignature.getPublicKey() hashes the full 1088-byte key
|
|
185
|
-
* and returns SHA3-256(full_key) = 32 bytes. The MMR tree and SignatureProof use this digest.
|
|
186
|
-
*/
|
|
187
|
-
export interface SignatureProof {
|
|
188
|
-
leafPubkey: Uint8Array;
|
|
189
|
-
signature: Uint8Array;
|
|
190
|
-
mmrProof: MMRProof;
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Write SignatureProof per Java SignatureProof.writeDataStream()
|
|
194
|
-
*
|
|
195
|
-
* Java source (SignatureProof.java):
|
|
196
|
-
* mPublicKey.writeDataStream(zOut); // MiniData
|
|
197
|
-
* mSignature.writeDataStream(zOut); // MiniData
|
|
198
|
-
* mProof.writeDataStream(zOut); // MMRProof
|
|
199
|
-
*/
|
|
200
|
-
export declare function writeSignatureProof(sigProof: SignatureProof): Uint8Array;
|
|
201
|
-
/**
|
|
202
|
-
* Signature interface matching Java Signature structure
|
|
203
|
-
* A Signature contains an array of SignatureProofs (for hierarchical signing)
|
|
204
|
-
*/
|
|
205
|
-
export interface Signature {
|
|
206
|
-
proofs: SignatureProof[];
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Write Signature per Java Signature.writeDataStream()
|
|
210
|
-
*
|
|
211
|
-
* Java source (Signature.java):
|
|
212
|
-
* MiniNumber.WriteToStream(zOut, mSignatures.size());
|
|
213
|
-
* for each sig: sig.writeDataStream(zOut);
|
|
214
|
-
*/
|
|
215
|
-
export declare function writeSignature(sig: Signature): Uint8Array;
|
|
216
|
-
/**
|
|
217
|
-
* CoinProof interface (simplified - coin proofs in witness)
|
|
218
|
-
* Full implementation would include coin data + MMR proof
|
|
219
|
-
*/
|
|
220
|
-
export interface CoinProof {
|
|
221
|
-
data: Uint8Array;
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* ScriptProof interface (simplified - script proofs in witness)
|
|
225
|
-
*/
|
|
226
|
-
export interface ScriptProof {
|
|
227
|
-
data: Uint8Array;
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Witness interface matching Java Witness structure
|
|
231
|
-
* Used for full transaction witness serialization
|
|
232
|
-
*/
|
|
233
|
-
export interface Witness {
|
|
234
|
-
signatures: Signature[];
|
|
235
|
-
coinProofs: CoinProof[];
|
|
236
|
-
scriptProofs: ScriptProof[];
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Write Witness per Java Witness.writeDataStream()
|
|
240
|
-
*
|
|
241
|
-
* Java source (Witness.java):
|
|
242
|
-
* MiniNumber.WriteToStream(zOut, mSignatureProofs.size());
|
|
243
|
-
* for each sp: sp.writeDataStream(zOut);
|
|
244
|
-
* MiniNumber.WriteToStream(zOut, mCoinProofs.size());
|
|
245
|
-
* for each cp: cp.writeDataStream(zOut);
|
|
246
|
-
* MiniNumber.WriteToStream(zOut, mScriptProofs.size());
|
|
247
|
-
* for each sp: sp.writeDataStream(zOut);
|
|
248
|
-
*/
|
|
249
|
-
export declare function writeWitness(witness: Witness): Uint8Array;
|
|
250
|
-
/**
|
|
251
|
-
* HierarchicalWitnessBundle - Simplified witness for WOTS hierarchical signing
|
|
252
|
-
* This is the format used by Totem for transaction signing
|
|
253
|
-
*/
|
|
254
|
-
export interface HierarchicalWitnessBundle {
|
|
255
|
-
signatures: Signature[];
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Write a simplified hierarchical witness (signatures only)
|
|
259
|
-
* Used for WOTS transaction signing flow
|
|
260
|
-
*/
|
|
261
|
-
export declare function writeHierarchicalWitness(bundle: HierarchicalWitnessBundle): Uint8Array;
|
|
262
|
-
/**
|
|
263
|
-
* Write hierarchical witness and return as hex string
|
|
264
|
-
*/
|
|
265
|
-
export declare function writeHierarchicalWitnessToHex(bundle: HierarchicalWitnessBundle): string;
|
|
266
|
-
export declare const encodeMiniNumber: typeof writeMiniNumber;
|
|
267
|
-
export declare const encodeMiniData: typeof writeMiniData;
|
|
268
|
-
export declare const encodeMiniString: typeof writeMiniString;
|