@nockchain/rose-ts 0.1.1-alpha
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/README.md +373 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -0
- package/dist/core/belt.d.ts +16 -0
- package/dist/core/belt.d.ts.map +1 -0
- package/dist/core/belt.js +120 -0
- package/dist/core/belt.js.map +1 -0
- package/dist/core/digest.d.ts +9 -0
- package/dist/core/digest.d.ts.map +1 -0
- package/dist/core/digest.js +76 -0
- package/dist/core/digest.js.map +1 -0
- package/dist/core/hashable.d.ts +21 -0
- package/dist/core/hashable.d.ts.map +1 -0
- package/dist/core/hashable.js +128 -0
- package/dist/core/hashable.js.map +1 -0
- package/dist/core/lock.d.ts +8 -0
- package/dist/core/lock.d.ts.map +1 -0
- package/dist/core/lock.js +95 -0
- package/dist/core/lock.js.map +1 -0
- package/dist/core/merkle.d.ts +7 -0
- package/dist/core/merkle.d.ts.map +1 -0
- package/dist/core/merkle.js +57 -0
- package/dist/core/merkle.js.map +1 -0
- package/dist/core/must.d.ts +3 -0
- package/dist/core/must.d.ts.map +1 -0
- package/dist/core/must.js +14 -0
- package/dist/core/must.js.map +1 -0
- package/dist/core/tip5/constants.d.ts +10 -0
- package/dist/core/tip5/constants.d.ts.map +1 -0
- package/dist/core/tip5/constants.js +70 -0
- package/dist/core/tip5/constants.js.map +1 -0
- package/dist/core/tip5/index.d.ts +5 -0
- package/dist/core/tip5/index.d.ts.map +1 -0
- package/dist/core/tip5/index.js +100 -0
- package/dist/core/tip5/index.js.map +1 -0
- package/dist/core/u256.d.ts +21 -0
- package/dist/core/u256.d.ts.map +1 -0
- package/dist/core/u256.js +96 -0
- package/dist/core/u256.js.map +1 -0
- package/dist/core/ubig.d.ts +20 -0
- package/dist/core/ubig.d.ts.map +1 -0
- package/dist/core/ubig.js +81 -0
- package/dist/core/ubig.js.map +1 -0
- package/dist/core/zbase.d.ts +11 -0
- package/dist/core/zbase.d.ts.map +1 -0
- package/dist/core/zbase.js +82 -0
- package/dist/core/zbase.js.map +1 -0
- package/dist/crypto/bpoly.d.ts +3 -0
- package/dist/crypto/bpoly.d.ts.map +1 -0
- package/dist/crypto/bpoly.js +121 -0
- package/dist/crypto/bpoly.js.map +1 -0
- package/dist/crypto/cheetah.d.ts +25 -0
- package/dist/crypto/cheetah.d.ts.map +1 -0
- package/dist/crypto/cheetah.js +250 -0
- package/dist/crypto/cheetah.js.map +1 -0
- package/dist/crypto/index.d.ts +7 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +24 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/privateKey.d.ts +11 -0
- package/dist/crypto/privateKey.d.ts.map +1 -0
- package/dist/crypto/privateKey.js +88 -0
- package/dist/crypto/privateKey.js.map +1 -0
- package/dist/crypto/publicKey.d.ts +18 -0
- package/dist/crypto/publicKey.d.ts.map +1 -0
- package/dist/crypto/publicKey.js +79 -0
- package/dist/crypto/publicKey.js.map +1 -0
- package/dist/crypto/slip10.d.ts +10 -0
- package/dist/crypto/slip10.d.ts.map +1 -0
- package/dist/crypto/slip10.js +104 -0
- package/dist/crypto/slip10.js.map +1 -0
- package/dist/grpc/index.d.ts +12 -0
- package/dist/grpc/index.d.ts.map +1 -0
- package/dist/grpc/index.js +13 -0
- package/dist/grpc/index.js.map +1 -0
- package/dist/grpc/proto.d.ts +26 -0
- package/dist/grpc/proto.d.ts.map +1 -0
- package/dist/grpc/proto.js +219 -0
- package/dist/grpc/proto.js.map +1 -0
- package/dist/hash/index.d.ts +32 -0
- package/dist/hash/index.d.ts.map +1 -0
- package/dist/hash/index.js +138 -0
- package/dist/hash/index.js.map +1 -0
- package/dist/hash/note.d.ts +13 -0
- package/dist/hash/note.d.ts.map +1 -0
- package/dist/hash/note.js +78 -0
- package/dist/hash/note.js.map +1 -0
- package/dist/hash/noteData.d.ts +12 -0
- package/dist/hash/noteData.d.ts.map +1 -0
- package/dist/hash/noteData.js +115 -0
- package/dist/hash/noteData.js.map +1 -0
- package/dist/hash/noun.d.ts +4 -0
- package/dist/hash/noun.d.ts.map +1 -0
- package/dist/hash/noun.js +15 -0
- package/dist/hash/noun.js.map +1 -0
- package/dist/hash/structural.d.ts +5 -0
- package/dist/hash/structural.d.ts.map +1 -0
- package/dist/hash/structural.js +41 -0
- package/dist/hash/structural.js.map +1 -0
- package/dist/hash/tx.d.ts +15 -0
- package/dist/hash/tx.d.ts.map +1 -0
- package/dist/hash/tx.js +146 -0
- package/dist/hash/tx.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/noun/belts.d.ts +9 -0
- package/dist/noun/belts.d.ts.map +1 -0
- package/dist/noun/belts.js +73 -0
- package/dist/noun/belts.js.map +1 -0
- package/dist/noun/bitwriter.d.ts +14 -0
- package/dist/noun/bitwriter.d.ts.map +1 -0
- package/dist/noun/bitwriter.js +100 -0
- package/dist/noun/bitwriter.js.map +1 -0
- package/dist/noun/codec.d.ts +9 -0
- package/dist/noun/codec.d.ts.map +1 -0
- package/dist/noun/codec.js +144 -0
- package/dist/noun/codec.js.map +1 -0
- package/dist/noun/cue.d.ts +3 -0
- package/dist/noun/cue.d.ts.map +1 -0
- package/dist/noun/cue.js +152 -0
- package/dist/noun/cue.js.map +1 -0
- package/dist/noun/encode.d.ts +12 -0
- package/dist/noun/encode.d.ts.map +1 -0
- package/dist/noun/encode.js +37 -0
- package/dist/noun/encode.js.map +1 -0
- package/dist/noun/index.d.ts +10 -0
- package/dist/noun/index.d.ts.map +1 -0
- package/dist/noun/index.js +29 -0
- package/dist/noun/index.js.map +1 -0
- package/dist/noun/jam.d.ts +3 -0
- package/dist/noun/jam.d.ts.map +1 -0
- package/dist/noun/jam.js +107 -0
- package/dist/noun/jam.js.map +1 -0
- package/dist/noun/types.d.ts +21 -0
- package/dist/noun/types.d.ts.map +1 -0
- package/dist/noun/types.js +66 -0
- package/dist/noun/types.js.map +1 -0
- package/dist/noun/words.d.ts +3 -0
- package/dist/noun/words.d.ts.map +1 -0
- package/dist/noun/words.js +6 -0
- package/dist/noun/words.js.map +1 -0
- package/dist/proto/decode.d.ts +10 -0
- package/dist/proto/decode.d.ts.map +1 -0
- package/dist/proto/decode.js +44 -0
- package/dist/proto/decode.js.map +1 -0
- package/dist/proto/digest.d.ts +21 -0
- package/dist/proto/digest.d.ts.map +1 -0
- package/dist/proto/digest.js +29 -0
- package/dist/proto/digest.js.map +1 -0
- package/dist/proto/index.d.ts +9 -0
- package/dist/proto/index.d.ts.map +1 -0
- package/dist/proto/index.js +140 -0
- package/dist/proto/index.js.map +1 -0
- package/dist/proto/note.d.ts +4 -0
- package/dist/proto/note.d.ts.map +1 -0
- package/dist/proto/note.js +99 -0
- package/dist/proto/note.js.map +1 -0
- package/dist/proto/rawTx.d.ts +3 -0
- package/dist/proto/rawTx.d.ts.map +1 -0
- package/dist/proto/rawTx.js +186 -0
- package/dist/proto/rawTx.js.map +1 -0
- package/dist/rpc/client.d.ts +13 -0
- package/dist/rpc/client.d.ts.map +1 -0
- package/dist/rpc/client.js +75 -0
- package/dist/rpc/client.js.map +1 -0
- package/dist/rpc/types.d.ts +18 -0
- package/dist/rpc/types.d.ts.map +1 -0
- package/dist/rpc/types.js +2 -0
- package/dist/rpc/types.js.map +1 -0
- package/dist/rpc/wire/encode.d.ts +4 -0
- package/dist/rpc/wire/encode.d.ts.map +1 -0
- package/dist/rpc/wire/encode.js +168 -0
- package/dist/rpc/wire/encode.js.map +1 -0
- package/dist/rpc/wire/protobuf.d.ts +10 -0
- package/dist/rpc/wire/protobuf.d.ts.map +1 -0
- package/dist/rpc/wire/protobuf.js +50 -0
- package/dist/rpc/wire/protobuf.js.map +1 -0
- package/dist/stubs.d.ts +6 -0
- package/dist/stubs.d.ts.map +1 -0
- package/dist/stubs.js +12 -0
- package/dist/stubs.js.map +1 -0
- package/dist/tx/accessors.d.ts +13 -0
- package/dist/tx/accessors.d.ts.map +1 -0
- package/dist/tx/accessors.js +65 -0
- package/dist/tx/accessors.js.map +1 -0
- package/dist/tx/builder.d.ts +63 -0
- package/dist/tx/builder.d.ts.map +1 -0
- package/dist/tx/builder.js +601 -0
- package/dist/tx/builder.js.map +1 -0
- package/dist/tx/display.d.ts +7 -0
- package/dist/tx/display.d.ts.map +1 -0
- package/dist/tx/display.js +34 -0
- package/dist/tx/display.js.map +1 -0
- package/dist/tx/fee.d.ts +8 -0
- package/dist/tx/fee.d.ts.map +1 -0
- package/dist/tx/fee.js +81 -0
- package/dist/tx/fee.js.map +1 -0
- package/dist/tx/htlc.d.ts +21 -0
- package/dist/tx/htlc.d.ts.map +1 -0
- package/dist/tx/htlc.js +65 -0
- package/dist/tx/htlc.js.map +1 -0
- package/dist/tx/index.d.ts +19 -0
- package/dist/tx/index.d.ts.map +1 -0
- package/dist/tx/index.js +64 -0
- package/dist/tx/index.js.map +1 -0
- package/dist/tx/multisig.d.ts +3 -0
- package/dist/tx/multisig.d.ts.map +1 -0
- package/dist/tx/multisig.js +8 -0
- package/dist/tx/multisig.js.map +1 -0
- package/dist/tx/outputs.d.ts +3 -0
- package/dist/tx/outputs.d.ts.map +1 -0
- package/dist/tx/outputs.js +57 -0
- package/dist/tx/outputs.js.map +1 -0
- package/dist/tx/spend.d.ts +10 -0
- package/dist/tx/spend.d.ts.map +1 -0
- package/dist/tx/spend.js +17 -0
- package/dist/tx/spend.js.map +1 -0
- package/dist/tx/spends.d.ts +8 -0
- package/dist/tx/spends.d.ts.map +1 -0
- package/dist/tx/spends.js +48 -0
- package/dist/tx/spends.js.map +1 -0
- package/dist/tx/types.d.ts +5 -0
- package/dist/tx/types.d.ts.map +1 -0
- package/dist/tx/types.js +2 -0
- package/dist/tx/types.js.map +1 -0
- package/dist/tx/unlocks.d.ts +4 -0
- package/dist/tx/unlocks.d.ts.map +1 -0
- package/dist/tx/unlocks.js +49 -0
- package/dist/tx/unlocks.js.map +1 -0
- package/dist/tx/witness.d.ts +14 -0
- package/dist/tx/witness.d.ts.map +1 -0
- package/dist/tx/witness.js +81 -0
- package/dist/tx/witness.js.map +1 -0
- package/dist/types.d.ts +311 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { hmac } from "@noble/hashes/hmac.js";
|
|
2
|
+
import { sha512 } from "@noble/hashes/sha2.js";
|
|
3
|
+
import { mnemonicToSeedSync } from "@scure/bip39";
|
|
4
|
+
import { U256, G_ORDER } from "../core/u256.js";
|
|
5
|
+
import { A_GEN, chAdd, chScalBig, publicKeyFromBeBytes, publicKeyToBeBytes, publicKeyToSlip10Bytes, } from "./cheetah.js";
|
|
6
|
+
const DOMAIN_SEPARATOR = new TextEncoder().encode("Nockchain seed");
|
|
7
|
+
function hmacSha512(key, data) {
|
|
8
|
+
return hmac(sha512, key, data);
|
|
9
|
+
}
|
|
10
|
+
function scalarFromPrivateBytes(bytes) {
|
|
11
|
+
return U256.fromBeBytes(bytes);
|
|
12
|
+
}
|
|
13
|
+
function publicKeyFromScalar(scalar) {
|
|
14
|
+
const pt = chScalBig(scalar, A_GEN);
|
|
15
|
+
if (!pt)
|
|
16
|
+
throw new Error("invalid private key scalar");
|
|
17
|
+
return pt;
|
|
18
|
+
}
|
|
19
|
+
function indexBytes(index) {
|
|
20
|
+
const out = new Uint8Array(4);
|
|
21
|
+
new DataView(out.buffer).setUint32(0, index >>> 0, false);
|
|
22
|
+
return out;
|
|
23
|
+
}
|
|
24
|
+
export class ExtendedKey {
|
|
25
|
+
privateKey;
|
|
26
|
+
publicKey;
|
|
27
|
+
chainCode;
|
|
28
|
+
constructor(privateKey, publicKey, chainCode) {
|
|
29
|
+
this.privateKey = privateKey;
|
|
30
|
+
this.publicKey = publicKey;
|
|
31
|
+
this.chainCode = chainCode;
|
|
32
|
+
}
|
|
33
|
+
deriveChild(index) {
|
|
34
|
+
const hardened = (index >>> 0) >= 0x8000_0000;
|
|
35
|
+
const idx = indexBytes(index);
|
|
36
|
+
const initialData = () => {
|
|
37
|
+
if (hardened) {
|
|
38
|
+
if (!this.privateKey) {
|
|
39
|
+
throw new Error("Cannot derive hardened child without private key");
|
|
40
|
+
}
|
|
41
|
+
const data = new Uint8Array(1 + 32 + 4);
|
|
42
|
+
data[0] = 0x00;
|
|
43
|
+
data.set(this.privateKey, 1);
|
|
44
|
+
data.set(idx, 33);
|
|
45
|
+
return data;
|
|
46
|
+
}
|
|
47
|
+
const data = new Uint8Array(1 + 96 + 4);
|
|
48
|
+
data[0] = 0x01;
|
|
49
|
+
data.set(publicKeyToSlip10Bytes(publicKeyFromBeBytes(this.publicKey)), 1);
|
|
50
|
+
data.set(idx, 97);
|
|
51
|
+
return data;
|
|
52
|
+
};
|
|
53
|
+
const init = initialData();
|
|
54
|
+
let result = hmacSha512(this.chainCode, init);
|
|
55
|
+
for (;;) {
|
|
56
|
+
const left = U256.fromBeBytes(result.slice(0, 32));
|
|
57
|
+
const chainCode = result.slice(32, 64);
|
|
58
|
+
if (left.lt(G_ORDER) && !left.eq(U256.ZERO)) {
|
|
59
|
+
if (this.privateKey) {
|
|
60
|
+
const parent = scalarFromPrivateBytes(this.privateKey);
|
|
61
|
+
const s = left.addMod(parent, G_ORDER);
|
|
62
|
+
if (!s.eq(U256.ZERO)) {
|
|
63
|
+
const priv = s.toBeBytes();
|
|
64
|
+
const pub = publicKeyToBeBytes(publicKeyFromScalar(s));
|
|
65
|
+
return new ExtendedKey(priv, pub, chainCode);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const leftPoint = chScalBig(left, A_GEN);
|
|
70
|
+
if (leftPoint) {
|
|
71
|
+
const parent = publicKeyFromBeBytes(this.publicKey);
|
|
72
|
+
const child = chAdd(leftPoint, parent);
|
|
73
|
+
if (child && !child.inf) {
|
|
74
|
+
return new ExtendedKey(null, publicKeyToBeBytes(child), chainCode);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const retry = new Uint8Array(1 + 32 + 4);
|
|
80
|
+
retry[0] = 0x01;
|
|
81
|
+
retry.set(chainCode, 1);
|
|
82
|
+
retry.set(idx, 33);
|
|
83
|
+
result = hmacSha512(this.chainCode, retry);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export function deriveMasterKey(seed) {
|
|
88
|
+
let result = hmacSha512(DOMAIN_SEPARATOR, seed);
|
|
89
|
+
for (;;) {
|
|
90
|
+
const s = U256.fromBeBytes(result.subarray(0, 32));
|
|
91
|
+
const chainCode = result.slice(32, 64);
|
|
92
|
+
if (s.lt(G_ORDER) && !s.eq(U256.ZERO)) {
|
|
93
|
+
const priv = s.toBeBytes();
|
|
94
|
+
const pub = publicKeyToBeBytes(publicKeyFromScalar(s));
|
|
95
|
+
return new ExtendedKey(priv, pub, chainCode);
|
|
96
|
+
}
|
|
97
|
+
result = hmacSha512(DOMAIN_SEPARATOR, result.subarray(0, 64));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export function deriveMasterKeyFromMnemonic(mnemonic, passphrase) {
|
|
101
|
+
const seed = mnemonicToSeedSync(mnemonic, passphrase ?? "");
|
|
102
|
+
return deriveMasterKey(seed);
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=slip10.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slip10.js","sourceRoot":"","sources":["../../src/crypto/slip10.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { NockchainTx } from "../types.js";
|
|
2
|
+
import { RpcClient } from "../rpc/client.js";
|
|
3
|
+
import type { Balance } from "../rpc/types.js";
|
|
4
|
+
export type FetchFn = typeof fetch;
|
|
5
|
+
export declare class GrpcClient extends RpcClient {
|
|
6
|
+
sendTransaction(tx: NockchainTx): Promise<string>;
|
|
7
|
+
getBalanceByAddress(address: string): Promise<Balance & {
|
|
8
|
+
notes: Balance["notes"];
|
|
9
|
+
}>;
|
|
10
|
+
getBalanceByFirstName(firstName: string): Promise<Balance>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/grpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC;AAGnC,qBAAa,UAAW,SAAQ,SAAS;IACxB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IAI3E,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAG1E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { RpcClient } from "../rpc/client.js";
|
|
2
|
+
export class GrpcClient extends RpcClient {
|
|
3
|
+
async sendTransaction(tx) {
|
|
4
|
+
return super.sendTransaction(tx);
|
|
5
|
+
}
|
|
6
|
+
async getBalanceByAddress(address) {
|
|
7
|
+
return super.getBalance(address);
|
|
8
|
+
}
|
|
9
|
+
async getBalanceByFirstName(firstName) {
|
|
10
|
+
return super.getBalanceByFirstName(firstName);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/grpc/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAM7C,MAAM,OAAO,UAAW,SAAQ,SAAS;IAC9B,KAAK,CAAC,eAAe,CAAC,EAAe;QAC5C,OAAO,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAAe;QACvC,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAEQ,KAAK,CAAC,qBAAqB,CAAC,SAAiB;QACpD,OAAO,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare function encodeWalletGetBalanceByFirstName(firstName: string): Uint8Array;
|
|
2
|
+
export declare function encodeWalletGetBalanceByAddress(address: string): Uint8Array;
|
|
3
|
+
export declare function encodeTransactionAccepted(txId: string): Uint8Array;
|
|
4
|
+
export declare function decodeWalletGetBalanceResponse(body: Uint8Array): {
|
|
5
|
+
balance?: {
|
|
6
|
+
block_id: string;
|
|
7
|
+
notes: unknown[];
|
|
8
|
+
};
|
|
9
|
+
error?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function decodeWalletSendTransactionResponse(body: Uint8Array): {
|
|
12
|
+
ack?: true;
|
|
13
|
+
error?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function decodeTransactionAcceptedResponse(body: Uint8Array): {
|
|
16
|
+
accepted?: boolean;
|
|
17
|
+
error?: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function encodeWalletSendTransaction(rawTx: {
|
|
20
|
+
id: string;
|
|
21
|
+
version?: {
|
|
22
|
+
value: string;
|
|
23
|
+
};
|
|
24
|
+
spends: unknown[];
|
|
25
|
+
}): Uint8Array;
|
|
26
|
+
//# sourceMappingURL=proto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proto.d.ts","sourceRoot":"","sources":["../../src/grpc/proto.ts"],"names":[],"mappings":"AA0DA,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAW/E;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAW3E;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAIlE;AA+DD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,UAAU,GAAG;IAChE,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAwBA;AAED,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBpG;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAqB1G;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB,GAAG,UAAU,CAab"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { mustAt } from "../core/must.js";
|
|
2
|
+
function writeVarint(value) {
|
|
3
|
+
const bytes = [];
|
|
4
|
+
let v = value >>> 0;
|
|
5
|
+
while (v >= 0x80) {
|
|
6
|
+
bytes.push((v & 0x7f) | 0x80);
|
|
7
|
+
v >>>= 7;
|
|
8
|
+
}
|
|
9
|
+
bytes.push(v);
|
|
10
|
+
return new Uint8Array(bytes);
|
|
11
|
+
}
|
|
12
|
+
function writeStringField(fieldNum, value) {
|
|
13
|
+
const utf8 = new TextEncoder().encode(value);
|
|
14
|
+
const tag = writeVarint((fieldNum << 3) | 2);
|
|
15
|
+
const len = writeVarint(utf8.length);
|
|
16
|
+
const out = new Uint8Array(tag.length + len.length + utf8.length);
|
|
17
|
+
out.set(tag, 0);
|
|
18
|
+
out.set(len, tag.length);
|
|
19
|
+
out.set(utf8, tag.length + len.length);
|
|
20
|
+
return out;
|
|
21
|
+
}
|
|
22
|
+
function writeMessageField(fieldNum, message) {
|
|
23
|
+
const tag = writeVarint((fieldNum << 3) | 2);
|
|
24
|
+
const len = writeVarint(message.length);
|
|
25
|
+
const out = new Uint8Array(tag.length + len.length + message.length);
|
|
26
|
+
out.set(tag, 0);
|
|
27
|
+
out.set(len, tag.length);
|
|
28
|
+
out.set(message, tag.length + len.length);
|
|
29
|
+
return out;
|
|
30
|
+
}
|
|
31
|
+
function concatChunks(chunks) {
|
|
32
|
+
const total = chunks.reduce((n, c) => n + c.length, 0);
|
|
33
|
+
const out = new Uint8Array(total);
|
|
34
|
+
let off = 0;
|
|
35
|
+
for (const c of chunks) {
|
|
36
|
+
out.set(c, off);
|
|
37
|
+
off += c.length;
|
|
38
|
+
}
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
41
|
+
function grpcWebFrame(message) {
|
|
42
|
+
const out = new Uint8Array(5 + message.length);
|
|
43
|
+
out[0] = 0;
|
|
44
|
+
out[1] = (message.length >>> 24) & 0xff;
|
|
45
|
+
out[2] = (message.length >>> 16) & 0xff;
|
|
46
|
+
out[3] = (message.length >>> 8) & 0xff;
|
|
47
|
+
out[4] = message.length & 0xff;
|
|
48
|
+
out.set(message, 5);
|
|
49
|
+
return out;
|
|
50
|
+
}
|
|
51
|
+
export function encodeWalletGetBalanceByFirstName(firstName) {
|
|
52
|
+
const firstNameMsg = writeStringField(1, firstName);
|
|
53
|
+
const selector = concatChunks([writeVarint((2 << 3) | 2), writeVarint(firstNameMsg.length), firstNameMsg]);
|
|
54
|
+
const page = concatChunks([
|
|
55
|
+
writeVarint(0),
|
|
56
|
+
writeVarint(0),
|
|
57
|
+
writeStringField(2, ""),
|
|
58
|
+
writeVarint(0),
|
|
59
|
+
]);
|
|
60
|
+
const body = concatChunks([writeMessageField(2, selector), writeMessageField(3, page)]);
|
|
61
|
+
return grpcWebFrame(body);
|
|
62
|
+
}
|
|
63
|
+
export function encodeWalletGetBalanceByAddress(address) {
|
|
64
|
+
const addressMsg = writeStringField(1, address);
|
|
65
|
+
const selector = concatChunks([writeVarint((1 << 3) | 2), writeVarint(addressMsg.length), addressMsg]);
|
|
66
|
+
const page = concatChunks([
|
|
67
|
+
writeVarint(0),
|
|
68
|
+
writeVarint(0),
|
|
69
|
+
writeStringField(2, ""),
|
|
70
|
+
writeVarint(0),
|
|
71
|
+
]);
|
|
72
|
+
const body = concatChunks([writeMessageField(1, selector), writeMessageField(3, page)]);
|
|
73
|
+
return grpcWebFrame(body);
|
|
74
|
+
}
|
|
75
|
+
export function encodeTransactionAccepted(txId) {
|
|
76
|
+
const txIdMsg = writeStringField(1, txId);
|
|
77
|
+
const body = writeMessageField(1, txIdMsg);
|
|
78
|
+
return grpcWebFrame(body);
|
|
79
|
+
}
|
|
80
|
+
function readVarint(data, offset) {
|
|
81
|
+
let result = 0;
|
|
82
|
+
let shift = 0;
|
|
83
|
+
let i = offset;
|
|
84
|
+
for (; i < data.length; i++) {
|
|
85
|
+
const b = mustAt(data, i);
|
|
86
|
+
result |= (b & 0x7f) << shift;
|
|
87
|
+
if ((b & 0x80) === 0)
|
|
88
|
+
return [result, i + 1];
|
|
89
|
+
shift += 7;
|
|
90
|
+
}
|
|
91
|
+
throw new Error("truncated varint");
|
|
92
|
+
}
|
|
93
|
+
function skipField(data, offset, wireType) {
|
|
94
|
+
if (wireType === 0) {
|
|
95
|
+
const [, next] = readVarint(data, offset);
|
|
96
|
+
return next;
|
|
97
|
+
}
|
|
98
|
+
if (wireType === 2) {
|
|
99
|
+
const [len, start] = readVarint(data, offset);
|
|
100
|
+
return start + len;
|
|
101
|
+
}
|
|
102
|
+
throw new Error(`unsupported wire type ${wireType}`);
|
|
103
|
+
}
|
|
104
|
+
function parseGrpcWebFrames(body) {
|
|
105
|
+
const messages = [];
|
|
106
|
+
let off = 0;
|
|
107
|
+
while (off + 5 <= body.length) {
|
|
108
|
+
const len = (mustAt(body, off + 1) << 24) |
|
|
109
|
+
(mustAt(body, off + 2) << 16) |
|
|
110
|
+
(mustAt(body, off + 3) << 8) |
|
|
111
|
+
mustAt(body, off + 4);
|
|
112
|
+
off += 5;
|
|
113
|
+
messages.push(body.subarray(off, off + len));
|
|
114
|
+
off += len;
|
|
115
|
+
}
|
|
116
|
+
return messages;
|
|
117
|
+
}
|
|
118
|
+
function findStringField(data, targetField) {
|
|
119
|
+
let off = 0;
|
|
120
|
+
while (off < data.length) {
|
|
121
|
+
const [tag, next] = readVarint(data, off);
|
|
122
|
+
off = next;
|
|
123
|
+
const field = tag >>> 3;
|
|
124
|
+
const wire = tag & 7;
|
|
125
|
+
if (wire === 2) {
|
|
126
|
+
const [len, start] = readVarint(data, off);
|
|
127
|
+
off = start + len;
|
|
128
|
+
if (field === targetField) {
|
|
129
|
+
return new TextDecoder().decode(data.subarray(start, start + len));
|
|
130
|
+
}
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
off = skipField(data, off, wire);
|
|
134
|
+
}
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
export function decodeWalletGetBalanceResponse(body) {
|
|
138
|
+
for (const msg of parseGrpcWebFrames(body)) {
|
|
139
|
+
let off = 0;
|
|
140
|
+
while (off < msg.length) {
|
|
141
|
+
const [tag, next] = readVarint(msg, off);
|
|
142
|
+
off = next;
|
|
143
|
+
const field = tag >>> 3;
|
|
144
|
+
const wire = tag & 7;
|
|
145
|
+
if (wire === 2 && field === 1) {
|
|
146
|
+
const [len, start] = readVarint(msg, off);
|
|
147
|
+
const balanceBytes = msg.subarray(start, start + len);
|
|
148
|
+
const blockId = findStringField(balanceBytes, 2) ?? "";
|
|
149
|
+
return { balance: { block_id: blockId, notes: [] } };
|
|
150
|
+
}
|
|
151
|
+
if (wire === 2 && field === 2) {
|
|
152
|
+
const [len, start] = readVarint(msg, off);
|
|
153
|
+
const errBytes = msg.subarray(start, start + len);
|
|
154
|
+
const message = findStringField(errBytes, 1) ?? "Server error";
|
|
155
|
+
return { error: message };
|
|
156
|
+
}
|
|
157
|
+
off = skipField(msg, off, wire);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
throw new Error("Empty response from server");
|
|
161
|
+
}
|
|
162
|
+
export function decodeWalletSendTransactionResponse(body) {
|
|
163
|
+
for (const msg of parseGrpcWebFrames(body)) {
|
|
164
|
+
let off = 0;
|
|
165
|
+
while (off < msg.length) {
|
|
166
|
+
const [tag, next] = readVarint(msg, off);
|
|
167
|
+
off = next;
|
|
168
|
+
const field = tag >>> 3;
|
|
169
|
+
const wire = tag & 7;
|
|
170
|
+
if (wire === 2 && field === 1) {
|
|
171
|
+
return { ack: true };
|
|
172
|
+
}
|
|
173
|
+
if (wire === 2 && field === 2) {
|
|
174
|
+
const [len, start] = readVarint(msg, off);
|
|
175
|
+
const errBytes = msg.subarray(start, start + len);
|
|
176
|
+
return { error: findStringField(errBytes, 1) ?? "Server error" };
|
|
177
|
+
}
|
|
178
|
+
off = skipField(msg, off, wire);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
throw new Error("Empty response from server");
|
|
182
|
+
}
|
|
183
|
+
export function decodeTransactionAcceptedResponse(body) {
|
|
184
|
+
for (const msg of parseGrpcWebFrames(body)) {
|
|
185
|
+
let off = 0;
|
|
186
|
+
while (off < msg.length) {
|
|
187
|
+
const [tag, next] = readVarint(msg, off);
|
|
188
|
+
off = next;
|
|
189
|
+
const field = tag >>> 3;
|
|
190
|
+
const wire = tag & 7;
|
|
191
|
+
if (wire === 0 && field === 1) {
|
|
192
|
+
const [val] = readVarint(msg, off);
|
|
193
|
+
return { accepted: val !== 0 };
|
|
194
|
+
}
|
|
195
|
+
if (wire === 2 && field === 2) {
|
|
196
|
+
const [len, start] = readVarint(msg, off);
|
|
197
|
+
const errBytes = msg.subarray(start, start + len);
|
|
198
|
+
return { error: findStringField(errBytes, 1) ?? "Server error" };
|
|
199
|
+
}
|
|
200
|
+
off = skipField(msg, off, wire);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
throw new Error("Empty response from server");
|
|
204
|
+
}
|
|
205
|
+
export function encodeWalletSendTransaction(rawTx) {
|
|
206
|
+
const versionVal = rawTx.version?.value ?? "1";
|
|
207
|
+
const versionMsg = writeStringField(1, versionVal);
|
|
208
|
+
const idMsg = writeStringField(2, rawTx.id);
|
|
209
|
+
const spendsJson = new TextEncoder().encode(JSON.stringify(rawTx.spends));
|
|
210
|
+
const spendsMsg = concatChunks([writeVarint((3 << 3) | 2), writeVarint(spendsJson.length), spendsJson]);
|
|
211
|
+
const rawTxMsg = concatChunks([
|
|
212
|
+
writeMessageField(1, versionMsg),
|
|
213
|
+
writeMessageField(2, idMsg),
|
|
214
|
+
spendsMsg,
|
|
215
|
+
]);
|
|
216
|
+
const body = concatChunks([writeMessageField(2, rawTxMsg)]);
|
|
217
|
+
return grpcWebFrame(body);
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=proto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proto.js","sourceRoot":"","sources":["../../src/grpc/proto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Digest, Hax, Lock, LockRoot, LockTim, Nicks, NoteData, Pkh, SeedV1, SpendCondition } from "../types.js";
|
|
2
|
+
import { lockHeight } from "../core/lock.js";
|
|
3
|
+
import { type NounWire } from "../noun/types.js";
|
|
4
|
+
export declare function hashPreimage(preimageJam: Uint8Array): Digest;
|
|
5
|
+
export declare function pkhSingle(hash: Digest): Pkh;
|
|
6
|
+
export declare function pkhNew(m: number | bigint, hashes: Digest[]): Pkh;
|
|
7
|
+
export declare function pkhHash(pkh: Pkh): Digest;
|
|
8
|
+
export declare function haxHash(hax: Hax): Digest;
|
|
9
|
+
export declare function haxHashPreimage(preimage: NounWire): Digest;
|
|
10
|
+
export declare function spendConditionPkh(sc: SpendCondition): Pkh[];
|
|
11
|
+
export declare function spendConditionHax(sc: SpendCondition): Hax[];
|
|
12
|
+
export declare function spendConditionTim(sc: SpendCondition): LockTim[];
|
|
13
|
+
export declare function spendConditionBrn(sc: SpendCondition): boolean;
|
|
14
|
+
export declare function spendConditionNewPkh(pkh: Pkh): SpendCondition;
|
|
15
|
+
export declare function spendConditionFirstName(obj: SpendCondition): Digest;
|
|
16
|
+
export declare function lockFromList(sps: SpendCondition[]): Lock;
|
|
17
|
+
export declare function lockFromListBurnpad(sps: SpendCondition[]): Lock;
|
|
18
|
+
export declare function lockRootHash(v: LockRoot): Digest;
|
|
19
|
+
export { lockHeight };
|
|
20
|
+
export declare function lockProve(lock: Lock, leafIndex: number): {
|
|
21
|
+
proof: import("../types.js").MerkleProof;
|
|
22
|
+
axis: number;
|
|
23
|
+
};
|
|
24
|
+
export declare function hashU64(value: bigint): Digest;
|
|
25
|
+
export declare function spendConditionHash(sc: SpendCondition): Digest;
|
|
26
|
+
export declare function lockHash(lock: Lock): Digest;
|
|
27
|
+
export declare function noteDataEmpty(): NoteData;
|
|
28
|
+
export { noteHash, nameV1, nameHash, noteDataFeeWords, noteDataPushPkh, noteDataPushLock, noteDataPushMemo, noteDataPushBlob, decodeNoteDataPackedUtf8, decodePackedBlobUtf8, encodeBlobBelts, MAX_MEMO_UTF8_BYTES, MAX_BLOB_UTF8_BYTES, } from "./note.js";
|
|
29
|
+
export { hashNoun, hashStructuredNoun } from "./noun.js";
|
|
30
|
+
export { hashName, hashSeedV1Digest, hashSeedsV1Digest, hashSpendV1SigHash, hashWitnessDigest, hashPkhSignatureDigest, hashSpendsV1, hashLockMerkleProofDigest, } from "./tx.js";
|
|
31
|
+
export declare function seedV1NewSinglePkh(pkh: Digest, gift: Nicks, parentHash: Digest, _includeLockData: boolean): SeedV1;
|
|
32
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hash/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,GAAG,EACH,IAAI,EAEJ,QAAQ,EACR,OAAO,EACP,KAAK,EACL,QAAQ,EACR,GAAG,EACH,MAAM,EACN,cAAc,EACf,MAAM,aAAa,CAAC;AAMrB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAY7C,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE3D,wBAAgB,YAAY,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAI5D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAE3C;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAEhE;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAExC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAExC;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,GAAG,EAAE,CAI3D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,GAAG,EAAE,CAI3D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,EAAE,CAI/D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAE7D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc,CAG7D;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAEnE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI,CAoCxD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI,CAS/D;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEhD;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM;;;EAGtD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAE7D;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE3C;AAED,wBAAgB,aAAa,IAAI,QAAQ,CAExC;AAED,OAAO,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,KAAK,EACX,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,OAAO,GACxB,MAAM,CAUR"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { mustAt } from "../core/must.js";
|
|
2
|
+
import { cue } from "../noun/cue.js";
|
|
3
|
+
import { hashNounStructural } from "./structural.js";
|
|
4
|
+
import { proveHashableLock } from "../core/merkle.js";
|
|
5
|
+
import { lockHeight } from "../core/lock.js";
|
|
6
|
+
import { hashHax, hashLock, hashLockRoot, hashPkh, hashSpendCondition, hashToDigest, hashTuple, hashBool, hashU64 as hashU64Belts, } from "../core/hashable.js";
|
|
7
|
+
import { fromWire } from "../noun/types.js";
|
|
8
|
+
export function hashPreimage(preimageJam) {
|
|
9
|
+
const noun = cue(preimageJam);
|
|
10
|
+
if (!noun)
|
|
11
|
+
throw new Error("unable to cue preimage jam");
|
|
12
|
+
return hashNounStructural(noun);
|
|
13
|
+
}
|
|
14
|
+
export function pkhSingle(hash) {
|
|
15
|
+
return { m: 1, hashes: [hash] };
|
|
16
|
+
}
|
|
17
|
+
export function pkhNew(m, hashes) {
|
|
18
|
+
return { m: Number(m), hashes: hashes };
|
|
19
|
+
}
|
|
20
|
+
export function pkhHash(pkh) {
|
|
21
|
+
return hashToDigest(hashPkh(pkh));
|
|
22
|
+
}
|
|
23
|
+
export function haxHash(hax) {
|
|
24
|
+
return hashToDigest(hashHax(hax));
|
|
25
|
+
}
|
|
26
|
+
export function haxHashPreimage(preimage) {
|
|
27
|
+
return hashNounStructural(fromWire(preimage));
|
|
28
|
+
}
|
|
29
|
+
export function spendConditionPkh(sc) {
|
|
30
|
+
return sc
|
|
31
|
+
.filter((p) => p.tag === "pkh")
|
|
32
|
+
.map((p) => ({ m: p.m, hashes: p.hashes }));
|
|
33
|
+
}
|
|
34
|
+
export function spendConditionHax(sc) {
|
|
35
|
+
return sc
|
|
36
|
+
.filter((p) => p.tag === "hax")
|
|
37
|
+
.map((p) => ({ preimages: p.preimages }));
|
|
38
|
+
}
|
|
39
|
+
export function spendConditionTim(sc) {
|
|
40
|
+
return sc
|
|
41
|
+
.filter((p) => p.tag === "tim")
|
|
42
|
+
.map((p) => ({ rel: p.rel, abs: p.abs }));
|
|
43
|
+
}
|
|
44
|
+
export function spendConditionBrn(sc) {
|
|
45
|
+
return sc.some((p) => p.tag === "brn");
|
|
46
|
+
}
|
|
47
|
+
export function spendConditionNewPkh(pkh) {
|
|
48
|
+
const hashes = Array.isArray(pkh.hashes) ? pkh.hashes : [];
|
|
49
|
+
return [{ tag: "pkh", m: pkh.m, hashes: hashes }];
|
|
50
|
+
}
|
|
51
|
+
export function spendConditionFirstName(obj) {
|
|
52
|
+
return hashToDigest(hashTuple(hashBool(true), hashSpendCondition(obj)));
|
|
53
|
+
}
|
|
54
|
+
export function lockFromList(sps) {
|
|
55
|
+
const n = sps.length;
|
|
56
|
+
if (n === 1)
|
|
57
|
+
return mustAt(sps, 0);
|
|
58
|
+
if (n === 2)
|
|
59
|
+
return { tag: 2, p: mustAt(sps, 0), q: mustAt(sps, 1) };
|
|
60
|
+
if (n === 4) {
|
|
61
|
+
return {
|
|
62
|
+
tag: 4,
|
|
63
|
+
p: { p: mustAt(sps, 0), q: mustAt(sps, 1) },
|
|
64
|
+
q: { p: mustAt(sps, 2), q: mustAt(sps, 3) },
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (n === 8) {
|
|
68
|
+
return {
|
|
69
|
+
tag: 8,
|
|
70
|
+
p: {
|
|
71
|
+
p: { p: mustAt(sps, 0), q: mustAt(sps, 1) },
|
|
72
|
+
q: { p: mustAt(sps, 2), q: mustAt(sps, 3) },
|
|
73
|
+
},
|
|
74
|
+
q: {
|
|
75
|
+
p: { p: mustAt(sps, 4), q: mustAt(sps, 5) },
|
|
76
|
+
q: { p: mustAt(sps, 6), q: mustAt(sps, 7) },
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (n === 16) {
|
|
81
|
+
const v8 = (i) => ({
|
|
82
|
+
p: { p: mustAt(sps, i), q: mustAt(sps, i + 1) },
|
|
83
|
+
q: { p: mustAt(sps, i + 2), q: mustAt(sps, i + 3) },
|
|
84
|
+
});
|
|
85
|
+
return {
|
|
86
|
+
tag: 16,
|
|
87
|
+
p: { p: v8(0), q: v8(4) },
|
|
88
|
+
q: { p: v8(8), q: v8(12) },
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
throw new Error(`Invalid spend condition count ${n}, must be 1, 2, 4, 8, or 16`);
|
|
92
|
+
}
|
|
93
|
+
export function lockFromListBurnpad(sps) {
|
|
94
|
+
if (sps.length === 0 || sps.length > 16) {
|
|
95
|
+
throw new Error(`Spend condition count must be between 1 and 16, got ${sps.length}`);
|
|
96
|
+
}
|
|
97
|
+
const padded = [...sps];
|
|
98
|
+
const target = 1 << Math.ceil(Math.log2(sps.length));
|
|
99
|
+
const brn = [{ tag: "brn" }];
|
|
100
|
+
while (padded.length < target)
|
|
101
|
+
padded.push(brn);
|
|
102
|
+
return lockFromList(padded);
|
|
103
|
+
}
|
|
104
|
+
export function lockRootHash(v) {
|
|
105
|
+
return hashToDigest(hashLockRoot(v));
|
|
106
|
+
}
|
|
107
|
+
export { lockHeight };
|
|
108
|
+
export function lockProve(lock, leafIndex) {
|
|
109
|
+
const { proof, axis } = proveHashableLock(lock, leafIndex);
|
|
110
|
+
return { proof, axis: Number(axis) };
|
|
111
|
+
}
|
|
112
|
+
export function hashU64(value) {
|
|
113
|
+
return hashToDigest(hashU64Belts(value));
|
|
114
|
+
}
|
|
115
|
+
export function spendConditionHash(sc) {
|
|
116
|
+
return hashToDigest(hashSpendCondition(sc));
|
|
117
|
+
}
|
|
118
|
+
export function lockHash(lock) {
|
|
119
|
+
return hashToDigest(hashLock(lock));
|
|
120
|
+
}
|
|
121
|
+
export function noteDataEmpty() {
|
|
122
|
+
return [];
|
|
123
|
+
}
|
|
124
|
+
export { noteHash, nameV1, nameHash, noteDataFeeWords, noteDataPushPkh, noteDataPushLock, noteDataPushMemo, noteDataPushBlob, decodeNoteDataPackedUtf8, decodePackedBlobUtf8, encodeBlobBelts, MAX_MEMO_UTF8_BYTES, MAX_BLOB_UTF8_BYTES, } from "./note.js";
|
|
125
|
+
export { hashNoun, hashStructuredNoun } from "./noun.js";
|
|
126
|
+
export { hashName, hashSeedV1Digest, hashSeedsV1Digest, hashSpendV1SigHash, hashWitnessDigest, hashPkhSignatureDigest, hashSpendsV1, hashLockMerkleProofDigest, } from "./tx.js";
|
|
127
|
+
export function seedV1NewSinglePkh(pkh, gift, parentHash, _includeLockData) {
|
|
128
|
+
void _includeLockData;
|
|
129
|
+
const lock = spendConditionNewPkh(pkhSingle(pkh));
|
|
130
|
+
return {
|
|
131
|
+
output_source: null,
|
|
132
|
+
lock_root: lock,
|
|
133
|
+
note_data: noteDataEmpty(),
|
|
134
|
+
gift,
|
|
135
|
+
parent_hash: parentHash,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hash/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Digest, Name, Note, NoteData, Pkh, Source } from "../types.js";
|
|
2
|
+
import type { DigestBelts } from "../core/digest.js";
|
|
3
|
+
import type { NounWire } from "../noun/types.js";
|
|
4
|
+
export declare function hashNoteData(data: NoteData): DigestBelts;
|
|
5
|
+
export declare function noteDataFeeWords(data: NoteData): bigint;
|
|
6
|
+
export declare function noteDataPushPkh(data: NoteData, pkh: Pkh): NoteData;
|
|
7
|
+
export declare function noteDataPushLock(data: NoteData, lockNoun: NounWire): NoteData;
|
|
8
|
+
export { noteDataPushMemo, noteDataPushBlob, decodeNoteDataPackedUtf8, decodePackedBlobUtf8, encodeBlobBelts, MAX_MEMO_UTF8_BYTES, MAX_BLOB_UTF8_BYTES, NOTE_DATA_KEY_MEMO, NOTE_DATA_KEY_BLOB, } from "./noteData.js";
|
|
9
|
+
export declare function hashSourceFields(source: Source): Digest;
|
|
10
|
+
export declare function nameHash(name: Name): Digest;
|
|
11
|
+
export declare function nameV1(lock: Digest, source: Source): Name;
|
|
12
|
+
export declare function noteHash(note: Note): Digest;
|
|
13
|
+
//# sourceMappingURL=note.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note.d.ts","sourceRoot":"","sources":["../../src/hash/note.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,QAAQ,EAGR,GAAG,EACH,MAAM,EACP,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMjD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,CAUxD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAMvD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,QAAQ,CAMlE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAG7E;AAED,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAUvB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE3C;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQzD;AAwCD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAK3C"}
|