xno-skills 0.3.2 → 0.4.0
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 +71 -24
- package/assets/xno-skills-cli.png +0 -0
- package/dist/cjs/ed25519-blake2b.d.ts +4 -0
- package/dist/cjs/ed25519-blake2b.d.ts.map +1 -0
- package/dist/cjs/ed25519-blake2b.js +114 -0
- package/dist/cjs/ed25519-blake2b.js.map +1 -0
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +12 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mcp.js +252 -18
- package/dist/cjs/mcp.js.map +1 -1
- package/dist/cjs/rpc.d.ts +25 -0
- package/dist/cjs/rpc.d.ts.map +1 -1
- package/dist/cjs/rpc.js +56 -0
- package/dist/cjs/rpc.js.map +1 -1
- package/dist/cjs/state-block.d.ts +11 -0
- package/dist/cjs/state-block.d.ts.map +1 -0
- package/dist/cjs/state-block.js +64 -0
- package/dist/cjs/state-block.js.map +1 -0
- package/dist/cjs/version.d.ts +2 -2
- package/dist/cjs/version.js +1 -1
- package/dist/esm/ed25519-blake2b.d.ts +4 -0
- package/dist/esm/ed25519-blake2b.d.ts.map +1 -0
- package/dist/esm/ed25519-blake2b.js +109 -0
- package/dist/esm/ed25519-blake2b.js.map +1 -0
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mcp.js +253 -19
- package/dist/esm/mcp.js.map +1 -1
- package/dist/esm/rpc.d.ts +25 -0
- package/dist/esm/rpc.d.ts.map +1 -1
- package/dist/esm/rpc.js +52 -0
- package/dist/esm/rpc.js.map +1 -1
- package/dist/esm/state-block.d.ts +11 -0
- package/dist/esm/state-block.d.ts.map +1 -0
- package/dist/esm/state-block.js +60 -0
- package/dist/esm/state-block.js.map +1 -0
- package/dist/esm/version.d.ts +2 -2
- package/dist/esm/version.js +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
[](https://www.typescriptlang.org/)
|
|
6
6
|
|
|
7
|
-
A TypeScript library for interacting with the Nano (XNO) cryptocurrency. Generate wallets, convert units, validate addresses, and more.
|
|
7
|
+
A TypeScript library, executable, and MCP server, for interacting with the Nano (XNO) cryptocurrency. Generate wallets, convert units, validate addresses, and more.
|
|
8
|
+
|
|
9
|
+

|
|
8
10
|
|
|
9
11
|
## AI Skills
|
|
10
12
|
|
|
@@ -33,7 +35,7 @@ To use it, add the following to your MCP client configuration:
|
|
|
33
35
|
"mcpServers": {
|
|
34
36
|
"xno": {
|
|
35
37
|
"command": "npx",
|
|
36
|
-
"args": ["-y", "-p", "xno-skills
|
|
38
|
+
"args": ["-y", "-p", "xno-skills@latest", "xno-mcp"]
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
}
|
|
@@ -42,7 +44,8 @@ To use it, add the following to your MCP client configuration:
|
|
|
42
44
|
Exposed tools:
|
|
43
45
|
- `purse_create` / `purse_list` / `purse_addresses`: Named “purses” (custody inside MCP; return addresses only).
|
|
44
46
|
- `purse_balance` / `purse_probe_balances`: Balance/pending checks for purse accounts via RPC.
|
|
45
|
-
- `
|
|
47
|
+
- `purse_receive` / `purse_send`: Receive pending blocks and send funds (sign + work + `process` via RPC).
|
|
48
|
+
- `config_get` / `config_set`: Store defaults (RPC URL, work URL, timeouts, default representative; optional purse persistence).
|
|
46
49
|
- `generate_wallet`: Generate a wallet (default: BIP39 derivation).
|
|
47
50
|
- `derive_address`: Derive an address (supports `bip39` + `legacy`, with `auto` preference).
|
|
48
51
|
- `probe_mnemonic`: Probe both derivations via RPC (helps resolve 24-word ambiguity).
|
|
@@ -59,31 +62,71 @@ npm install xno-skills
|
|
|
59
62
|
|
|
60
63
|
See `RELEASING.md`.
|
|
61
64
|
|
|
62
|
-
##
|
|
65
|
+
## MCP Client Setup (Codex, Claude, OpenCode, Gemini, VS Code)
|
|
63
66
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
67
|
+
All examples run the MCP server via `npx` (swap `@latest` for a pinned version if you prefer).
|
|
68
|
+
|
|
69
|
+
### Codex
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
codex mcp add xno -- npx -y -p xno-skills@latest xno-mcp
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Claude Desktop (`claude_desktop_config.json`)
|
|
76
|
+
|
|
77
|
+
Add via Claude Desktop: Settings -> Developer -> Edit Config.
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"mcpServers": {
|
|
82
|
+
"xno": {
|
|
83
|
+
"command": "npx",
|
|
84
|
+
"args": ["-y", "-p", "xno-skills@latest", "xno-mcp"]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### OpenCode (`opencode.jsonc`)
|
|
91
|
+
|
|
92
|
+
```jsonc
|
|
93
|
+
{
|
|
94
|
+
"$schema": "https://opencode.ai/config.json",
|
|
95
|
+
"mcp": {
|
|
96
|
+
"xno": {
|
|
97
|
+
"type": "local",
|
|
98
|
+
"command": ["npx", "-y", "-p", "xno-skills@latest", "xno-mcp"],
|
|
99
|
+
"enabled": true
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
```
|
|
76
104
|
|
|
77
|
-
|
|
78
|
-
|
|
105
|
+
### Gemini CLI (`settings.json`)
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"mcpServers": {
|
|
110
|
+
"xno": {
|
|
111
|
+
"command": "npx",
|
|
112
|
+
"args": ["-y", "-p", "xno-skills@latest", "xno-mcp"]
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
79
117
|
|
|
80
|
-
|
|
81
|
-
const result = validateAddress(address);
|
|
82
|
-
console.log(result.valid); // true
|
|
118
|
+
### VS Code (`.vscode/mcp.json`)
|
|
83
119
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"servers": {
|
|
123
|
+
"xno": {
|
|
124
|
+
"type": "stdio",
|
|
125
|
+
"command": "npx",
|
|
126
|
+
"args": ["-y", "-p", "xno-skills@latest", "xno-mcp"]
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
87
130
|
```
|
|
88
131
|
|
|
89
132
|
## CLI Usage
|
|
@@ -564,6 +607,10 @@ npm run build:esm
|
|
|
564
607
|
npm run build:cjs
|
|
565
608
|
```
|
|
566
609
|
|
|
610
|
+
## Releasing
|
|
611
|
+
|
|
612
|
+
See `RELEASING.md`.
|
|
613
|
+
|
|
567
614
|
## License
|
|
568
615
|
|
|
569
616
|
MIT
|
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function nanoGetPublicKeyFromPrivateKey(privateKeyHex: string): string;
|
|
2
|
+
export declare function nanoSignBlake2b(message32: Uint8Array, privateKeyHex: string): string;
|
|
3
|
+
export declare function nanoVerifyBlake2b(message32: Uint8Array, signatureHex: string, publicKeyHex: string): boolean;
|
|
4
|
+
//# sourceMappingURL=ed25519-blake2b.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ed25519-blake2b.d.ts","sourceRoot":"","sources":["../../src/ed25519-blake2b.ts"],"names":[],"mappings":"AA+DA,wBAAgB,8BAA8B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAK5E;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAoBpF;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAyB5G"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nanoGetPublicKeyFromPrivateKey = nanoGetPublicKeyFromPrivateKey;
|
|
4
|
+
exports.nanoSignBlake2b = nanoSignBlake2b;
|
|
5
|
+
exports.nanoVerifyBlake2b = nanoVerifyBlake2b;
|
|
6
|
+
const blake2b_js_1 = require("@noble/hashes/blake2b.js");
|
|
7
|
+
const utils_js_1 = require("@noble/hashes/utils.js");
|
|
8
|
+
const ed25519_js_1 = require("@noble/curves/ed25519.js");
|
|
9
|
+
const ED25519_ORDER = BigInt('0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed');
|
|
10
|
+
function bytesToBigIntLE(bytes) {
|
|
11
|
+
let n = 0n;
|
|
12
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
13
|
+
n += BigInt(bytes[i]) << BigInt(8 * i);
|
|
14
|
+
}
|
|
15
|
+
return n;
|
|
16
|
+
}
|
|
17
|
+
function bigIntToBytesLE(n, length) {
|
|
18
|
+
if (n < 0n)
|
|
19
|
+
throw new Error('Negative bigint not supported');
|
|
20
|
+
const out = new Uint8Array(length);
|
|
21
|
+
let x = n;
|
|
22
|
+
for (let i = 0; i < length; i++) {
|
|
23
|
+
out[i] = Number(x & 0xffn);
|
|
24
|
+
x >>= 8n;
|
|
25
|
+
}
|
|
26
|
+
if (x !== 0n)
|
|
27
|
+
throw new Error(`Bigint does not fit in ${length} bytes`);
|
|
28
|
+
return out;
|
|
29
|
+
}
|
|
30
|
+
function modL(n) {
|
|
31
|
+
const x = n % ED25519_ORDER;
|
|
32
|
+
return x < 0n ? x + ED25519_ORDER : x;
|
|
33
|
+
}
|
|
34
|
+
function hash512(...parts) {
|
|
35
|
+
let len = 0;
|
|
36
|
+
for (const p of parts)
|
|
37
|
+
len += p.length;
|
|
38
|
+
const msg = new Uint8Array(len);
|
|
39
|
+
let o = 0;
|
|
40
|
+
for (const p of parts) {
|
|
41
|
+
msg.set(p, o);
|
|
42
|
+
o += p.length;
|
|
43
|
+
}
|
|
44
|
+
return (0, blake2b_js_1.blake2b)(msg, { dkLen: 64 });
|
|
45
|
+
}
|
|
46
|
+
function expandSecretKey(privateKey32) {
|
|
47
|
+
if (privateKey32.length !== 32)
|
|
48
|
+
throw new Error('Private key must be 32 bytes');
|
|
49
|
+
const h = (0, blake2b_js_1.blake2b)(privateKey32, { dkLen: 64 });
|
|
50
|
+
const aBytes = new Uint8Array(h.slice(0, 32));
|
|
51
|
+
aBytes[0] &= 248;
|
|
52
|
+
aBytes[31] &= 127;
|
|
53
|
+
aBytes[31] |= 64;
|
|
54
|
+
let scalar = bytesToBigIntLE(aBytes);
|
|
55
|
+
if (scalar === 0n || scalar >= ED25519_ORDER) {
|
|
56
|
+
scalar = scalar % ED25519_ORDER;
|
|
57
|
+
if (scalar === 0n)
|
|
58
|
+
scalar = 1n;
|
|
59
|
+
}
|
|
60
|
+
const prefix = new Uint8Array(h.slice(32, 64));
|
|
61
|
+
const publicKey = ed25519_js_1.ed25519.Point.BASE.multiply(scalar).toBytes();
|
|
62
|
+
return { scalar, prefix, publicKey };
|
|
63
|
+
}
|
|
64
|
+
function nanoGetPublicKeyFromPrivateKey(privateKeyHex) {
|
|
65
|
+
const sk = (0, utils_js_1.hexToBytes)(privateKeyHex);
|
|
66
|
+
if (sk.length !== 32)
|
|
67
|
+
throw new Error('Private key must be 32 bytes (64 hex characters)');
|
|
68
|
+
const { publicKey } = expandSecretKey(sk);
|
|
69
|
+
return (0, utils_js_1.bytesToHex)(publicKey);
|
|
70
|
+
}
|
|
71
|
+
function nanoSignBlake2b(message32, privateKeyHex) {
|
|
72
|
+
if (!(message32 instanceof Uint8Array) || message32.length !== 32) {
|
|
73
|
+
throw new Error('Message must be a 32-byte digest (block hash)');
|
|
74
|
+
}
|
|
75
|
+
const sk = (0, utils_js_1.hexToBytes)(privateKeyHex);
|
|
76
|
+
if (sk.length !== 32)
|
|
77
|
+
throw new Error('Private key must be 32 bytes (64 hex characters)');
|
|
78
|
+
const { scalar: a, prefix, publicKey: A } = expandSecretKey(sk);
|
|
79
|
+
const r = modL(bytesToBigIntLE(hash512(prefix, message32)));
|
|
80
|
+
const R = ed25519_js_1.ed25519.Point.BASE.multiply(r).toBytes();
|
|
81
|
+
const k = modL(bytesToBigIntLE(hash512(R, A, message32)));
|
|
82
|
+
const S = modL(r + k * a);
|
|
83
|
+
const sig = new Uint8Array(64);
|
|
84
|
+
sig.set(R, 0);
|
|
85
|
+
sig.set(bigIntToBytesLE(S, 32), 32);
|
|
86
|
+
return (0, utils_js_1.bytesToHex)(sig);
|
|
87
|
+
}
|
|
88
|
+
function nanoVerifyBlake2b(message32, signatureHex, publicKeyHex) {
|
|
89
|
+
try {
|
|
90
|
+
if (!(message32 instanceof Uint8Array) || message32.length !== 32)
|
|
91
|
+
return false;
|
|
92
|
+
const sig = (0, utils_js_1.hexToBytes)(signatureHex);
|
|
93
|
+
if (sig.length !== 64)
|
|
94
|
+
return false;
|
|
95
|
+
const pk = (0, utils_js_1.hexToBytes)(publicKeyHex);
|
|
96
|
+
if (pk.length !== 32)
|
|
97
|
+
return false;
|
|
98
|
+
const Rbytes = sig.slice(0, 32);
|
|
99
|
+
const Sbytes = sig.slice(32, 64);
|
|
100
|
+
const S = bytesToBigIntLE(Sbytes);
|
|
101
|
+
if (S >= ED25519_ORDER)
|
|
102
|
+
return false;
|
|
103
|
+
const R = ed25519_js_1.ed25519.Point.fromHex((0, utils_js_1.bytesToHex)(Rbytes));
|
|
104
|
+
const A = ed25519_js_1.ed25519.Point.fromHex((0, utils_js_1.bytesToHex)(pk));
|
|
105
|
+
const k = modL(bytesToBigIntLE(hash512(Rbytes, pk, message32)));
|
|
106
|
+
const SB = ed25519_js_1.ed25519.Point.BASE.multiply(S);
|
|
107
|
+
const RpluskA = R.add(A.multiply(k));
|
|
108
|
+
return SB.equals(RpluskA);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=ed25519-blake2b.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ed25519-blake2b.js","sourceRoot":"","sources":["../../src/ed25519-blake2b.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -7,5 +7,7 @@ export { deriveAddressBIP44, derivePrivateKeyBIP44, derivePublicKeyBIP44, public
|
|
|
7
7
|
export { validateAddress, type ValidateAddressResult } from './validate';
|
|
8
8
|
export { nanoToRaw, rawToNano, formatNano, knanoToRaw, mnanoToRaw } from './convert';
|
|
9
9
|
export { generateAsciiQr } from './qr';
|
|
10
|
-
export {
|
|
10
|
+
export { nanoGetPublicKeyFromPrivateKey, nanoSignBlake2b, nanoVerifyBlake2b } from './ed25519-blake2b';
|
|
11
|
+
export { hashNanoStateBlock, hashNanoStateBlockHex, type StateBlockHashInput } from './state-block';
|
|
12
|
+
export { nanoRpcCall, rpcAccountBalance, rpcAccountsBalances, rpcAccountsFrontiers, rpcAccountInfo, rpcReceivable, rpcWorkGenerate, rpcProcess, type AccountBalanceResponse, type AccountsBalancesResponse, type AccountsFrontiersResponse, type AccountInfoResponse, type WorkGenerateResponse, type ProcessResponse, type ReceivableItem, type RpcCallOptions, } from './rpc';
|
|
11
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC1G,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,kBAAkB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,cAAc,GACpB,MAAM,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC1G,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,kBAAkB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,8BAA8B,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EACV,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,OAAO,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.rpcAccountsFrontiers = exports.rpcAccountsBalances = exports.rpcAccountBalance = exports.nanoRpcCall = exports.generateAsciiQr = exports.mnanoToRaw = exports.knanoToRaw = exports.formatNano = exports.rawToNano = exports.nanoToRaw = exports.validateAddress = exports.mnemonicToBIP39Seed = exports.validateMnemonicBIP44 = exports.publicKeyToAddressBIP44 = exports.derivePublicKeyBIP44 = exports.derivePrivateKeyBIP44 = exports.deriveAddressBIP44 = exports.publicKeyToNanoAddress = exports.decodeNanoAddress = exports.publicKeyToAddress = exports.derivePublicKeyLegacy = exports.derivePrivateKeyLegacy = exports.deriveAddressLegacy = exports.validateMnemonic = exports.mnemonicToSeed = exports.seedToMnemonic = exports.generateMnemonic = exports.generateSeed = exports.blake2b256Hex = exports.blake2b512 = exports.blake2b256 = exports.base32Decode = exports.base32Encode = void 0;
|
|
3
|
+
exports.rpcProcess = exports.rpcWorkGenerate = exports.rpcReceivable = exports.rpcAccountInfo = exports.rpcAccountsFrontiers = exports.rpcAccountsBalances = exports.rpcAccountBalance = exports.nanoRpcCall = exports.hashNanoStateBlockHex = exports.hashNanoStateBlock = exports.nanoVerifyBlake2b = exports.nanoSignBlake2b = exports.nanoGetPublicKeyFromPrivateKey = exports.generateAsciiQr = exports.mnanoToRaw = exports.knanoToRaw = exports.formatNano = exports.rawToNano = exports.nanoToRaw = exports.validateAddress = exports.mnemonicToBIP39Seed = exports.validateMnemonicBIP44 = exports.publicKeyToAddressBIP44 = exports.derivePublicKeyBIP44 = exports.derivePrivateKeyBIP44 = exports.deriveAddressBIP44 = exports.publicKeyToNanoAddress = exports.decodeNanoAddress = exports.publicKeyToAddress = exports.derivePublicKeyLegacy = exports.derivePrivateKeyLegacy = exports.deriveAddressLegacy = exports.validateMnemonic = exports.mnemonicToSeed = exports.seedToMnemonic = exports.generateMnemonic = exports.generateSeed = exports.blake2b256Hex = exports.blake2b512 = exports.blake2b256 = exports.base32Decode = exports.base32Encode = void 0;
|
|
4
4
|
// xno core package
|
|
5
5
|
var base32_1 = require("./base32");
|
|
6
6
|
Object.defineProperty(exports, "base32Encode", { enumerable: true, get: function () { return base32_1.base32Encode; } });
|
|
@@ -40,9 +40,20 @@ Object.defineProperty(exports, "knanoToRaw", { enumerable: true, get: function (
|
|
|
40
40
|
Object.defineProperty(exports, "mnanoToRaw", { enumerable: true, get: function () { return convert_1.mnanoToRaw; } });
|
|
41
41
|
var qr_1 = require("./qr");
|
|
42
42
|
Object.defineProperty(exports, "generateAsciiQr", { enumerable: true, get: function () { return qr_1.generateAsciiQr; } });
|
|
43
|
+
var ed25519_blake2b_1 = require("./ed25519-blake2b");
|
|
44
|
+
Object.defineProperty(exports, "nanoGetPublicKeyFromPrivateKey", { enumerable: true, get: function () { return ed25519_blake2b_1.nanoGetPublicKeyFromPrivateKey; } });
|
|
45
|
+
Object.defineProperty(exports, "nanoSignBlake2b", { enumerable: true, get: function () { return ed25519_blake2b_1.nanoSignBlake2b; } });
|
|
46
|
+
Object.defineProperty(exports, "nanoVerifyBlake2b", { enumerable: true, get: function () { return ed25519_blake2b_1.nanoVerifyBlake2b; } });
|
|
47
|
+
var state_block_1 = require("./state-block");
|
|
48
|
+
Object.defineProperty(exports, "hashNanoStateBlock", { enumerable: true, get: function () { return state_block_1.hashNanoStateBlock; } });
|
|
49
|
+
Object.defineProperty(exports, "hashNanoStateBlockHex", { enumerable: true, get: function () { return state_block_1.hashNanoStateBlockHex; } });
|
|
43
50
|
var rpc_1 = require("./rpc");
|
|
44
51
|
Object.defineProperty(exports, "nanoRpcCall", { enumerable: true, get: function () { return rpc_1.nanoRpcCall; } });
|
|
45
52
|
Object.defineProperty(exports, "rpcAccountBalance", { enumerable: true, get: function () { return rpc_1.rpcAccountBalance; } });
|
|
46
53
|
Object.defineProperty(exports, "rpcAccountsBalances", { enumerable: true, get: function () { return rpc_1.rpcAccountsBalances; } });
|
|
47
54
|
Object.defineProperty(exports, "rpcAccountsFrontiers", { enumerable: true, get: function () { return rpc_1.rpcAccountsFrontiers; } });
|
|
55
|
+
Object.defineProperty(exports, "rpcAccountInfo", { enumerable: true, get: function () { return rpc_1.rpcAccountInfo; } });
|
|
56
|
+
Object.defineProperty(exports, "rpcReceivable", { enumerable: true, get: function () { return rpc_1.rpcReceivable; } });
|
|
57
|
+
Object.defineProperty(exports, "rpcWorkGenerate", { enumerable: true, get: function () { return rpc_1.rpcWorkGenerate; } });
|
|
58
|
+
Object.defineProperty(exports, "rpcProcess", { enumerable: true, get: function () { return rpc_1.rpcProcess; } });
|
|
48
59
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mBAAmB;AACnB,mCAAsD;AAA7C,sGAAA,YAAY,OAAA;AAAE,sGAAA,YAAY,OAAA;AACnC,qCAAkE;AAAzD,qGAAA,UAAU,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,wGAAA,aAAa,OAAA;AAC9C,+BAA0G;AAAjG,oGAAA,YAAY,OAAA;AAAE,wGAAA,gBAAgB,OAAA;AAAE,sGAAA,cAAc,OAAA;AAAE,sGAAA,cAAc,OAAA;AAAE,wGAAA,gBAAgB,OAAA;AACzF,mDAM0B;AALxB,qHAAA,mBAAmB,OAAA;AACnB,wHAAA,sBAAsB,OAAA;AACtB,uHAAA,qBAAqB,OAAA;AACrB,oHAAA,kBAAkB,OAAA;AAGpB,+CAAmG;AAA1F,iHAAA,iBAAiB,OAAA;AAAE,sHAAA,sBAAsB,OAAA;AAClD,iDAQyB;AAPvB,mHAAA,kBAAkB,OAAA;AAClB,sHAAA,qBAAqB,OAAA;AACrB,qHAAA,oBAAoB,OAAA;AACpB,wHAAA,uBAAuB,OAAA;AACvB,sHAAA,qBAAqB,OAAA;AACrB,oHAAA,mBAAmB,OAAA;AAGrB,uCAAyE;AAAhE,2GAAA,eAAe,OAAA;AACxB,qCAAqF;AAA5E,oGAAA,SAAS,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,qGAAA,UAAU,OAAA;AACjE,2BAAuC;AAA9B,qGAAA,eAAe,OAAA;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mBAAmB;AACnB,mCAAsD;AAA7C,sGAAA,YAAY,OAAA;AAAE,sGAAA,YAAY,OAAA;AACnC,qCAAkE;AAAzD,qGAAA,UAAU,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,wGAAA,aAAa,OAAA;AAC9C,+BAA0G;AAAjG,oGAAA,YAAY,OAAA;AAAE,wGAAA,gBAAgB,OAAA;AAAE,sGAAA,cAAc,OAAA;AAAE,sGAAA,cAAc,OAAA;AAAE,wGAAA,gBAAgB,OAAA;AACzF,mDAM0B;AALxB,qHAAA,mBAAmB,OAAA;AACnB,wHAAA,sBAAsB,OAAA;AACtB,uHAAA,qBAAqB,OAAA;AACrB,oHAAA,kBAAkB,OAAA;AAGpB,+CAAmG;AAA1F,iHAAA,iBAAiB,OAAA;AAAE,sHAAA,sBAAsB,OAAA;AAClD,iDAQyB;AAPvB,mHAAA,kBAAkB,OAAA;AAClB,sHAAA,qBAAqB,OAAA;AACrB,qHAAA,oBAAoB,OAAA;AACpB,wHAAA,uBAAuB,OAAA;AACvB,sHAAA,qBAAqB,OAAA;AACrB,oHAAA,mBAAmB,OAAA;AAGrB,uCAAyE;AAAhE,2GAAA,eAAe,OAAA;AACxB,qCAAqF;AAA5E,oGAAA,SAAS,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,qGAAA,UAAU,OAAA;AACjE,2BAAuC;AAA9B,qGAAA,eAAe,OAAA;AACxB,qDAAuG;AAA9F,iIAAA,8BAA8B,OAAA;AAAE,kHAAA,eAAe,OAAA;AAAE,oHAAA,iBAAiB,OAAA;AAC3E,6CAAoG;AAA3F,iHAAA,kBAAkB,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAClD,6BAiBe;AAhBb,kGAAA,WAAW,OAAA;AACX,wGAAA,iBAAiB,OAAA;AACjB,0GAAA,mBAAmB,OAAA;AACnB,2GAAA,oBAAoB,OAAA;AACpB,qGAAA,cAAc,OAAA;AACd,oGAAA,aAAa,OAAA;AACb,sGAAA,eAAe,OAAA;AACf,iGAAA,UAAU,OAAA"}
|