@monolythium/core-sdk 0.4.17 → 0.4.18
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/dist/crypto/index.d.cts +2 -2
- package/dist/crypto/index.d.ts +2 -2
- package/dist/index.cjs +80 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +80 -15
- package/dist/index.js.map +1 -1
- package/dist/{submission-DwcVARLM.d.cts → submission-Cr6u_2he.d.cts} +22 -3
- package/dist/{submission-DwcVARLM.d.ts → submission-Cr6u_2he.d.ts} +22 -3
- package/package.json +1 -1
package/dist/crypto/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { I as MlDsa65Backend } from '../submission-
|
|
2
|
-
export { kb as ADDRESS_DERIVATION_DOMAIN, kc as CLUSTER_MLKEM_SHAMIR, kd as CLUSTER_MLKEM_SHAMIR_ALGO, ke as ClusterSealKeyEntryInput, K as ClusterSealKeys, L as ClusterSealKeysSource, kf as DKG_AEAD_TAG_LEN, kg as DKG_NONCE_LEN, kh as DecryptHint, ki as ENCRYPTED_SUBMISSION_UNAVAILABLE_MESSAGE, kj as ENUM_VARIANT_INDEX_ML_DSA_65, kk as EncryptedEnvelope, kl as EncryptedSubmission, E as EncryptionKey, km as JsonRpcCallClient, kn as LythiumSealEnvelope, ko as ML_DSA_65_PUBLIC_KEY_LEN, kp as ML_DSA_65_SEED_LEN, kq as ML_DSA_65_SIGNATURE_LEN, kr as ML_DSA_65_SIGNING_KEY_LEN, ks as ML_KEM_768_CIPHERTEXT_LEN, kt as ML_KEM_768_ENCAPSULATION_KEY_LEN, ku as ML_KEM_768_SHARED_SECRET_LEN, F as MempoolClass, D as NativeEvmTxFields, kv as NativeTxExtension, kw as NativeTxExtensionDescriptor, kx as NativeTxExtensionLike, ky as NonceAad, kz as OperatorSealKeypair, kA as PlaintextSubmission, kB as SEAL_COMMIT_LEN, kC as SEAL_DK_LEN, kD as SEAL_EK_LEN, kE as SEAL_KEM_CT_LEN, kF as SEAL_KEM_SEED_LEN, kG as SEAL_KEY_LEN, kH as SEAL_NONCE_LEN, kI as SEAL_SHARE_LEN, kJ as SEAL_TAG_LEN, kK as STANDARD_ALGO_NUMBER_ML_DSA_65, kL as SealRandomSource, kM as SealRecipient, kN as SealedSubmission, kO as bincodeDecryptHint, kP as bincodeEncryptedEnvelope, kQ as bincodeNonceAad, kR as bincodeSignedTransaction, kS as buildEncryptedEnvelope, kT as buildEncryptedSubmission, kU as buildPlaintextSubmission, kV as cryptoRandomSource, kW as encodeMlDsa65Opaque, kX as encodeSealEnvelope, kY as encodeTransactionForHash, kZ as encryptInnerTx, k_ as fetchEncryptionKey, k$ as generateOperatorSealKeypair, l0 as getClusterSealKeys, l1 as mlDsa65AddressBytes, l2 as mlDsa65AddressFromPublicKey, l3 as outerSigDigest, l4 as parseClusterSealKeys, l5 as sealRosterHash, l6 as sealToCluster, l7 as sealTransaction, l8 as submitEncryptedEnvelope, l9 as submitPlaintextTransaction, la as submitSealedTransaction, lb as submitTransactionWithPrivacy } from '../submission-
|
|
1
|
+
import { I as MlDsa65Backend } from '../submission-Cr6u_2he.cjs';
|
|
2
|
+
export { kb as ADDRESS_DERIVATION_DOMAIN, kc as CLUSTER_MLKEM_SHAMIR, kd as CLUSTER_MLKEM_SHAMIR_ALGO, ke as ClusterSealKeyEntryInput, K as ClusterSealKeys, L as ClusterSealKeysSource, kf as DKG_AEAD_TAG_LEN, kg as DKG_NONCE_LEN, kh as DecryptHint, ki as ENCRYPTED_SUBMISSION_UNAVAILABLE_MESSAGE, kj as ENUM_VARIANT_INDEX_ML_DSA_65, kk as EncryptedEnvelope, kl as EncryptedSubmission, E as EncryptionKey, km as JsonRpcCallClient, kn as LythiumSealEnvelope, ko as ML_DSA_65_PUBLIC_KEY_LEN, kp as ML_DSA_65_SEED_LEN, kq as ML_DSA_65_SIGNATURE_LEN, kr as ML_DSA_65_SIGNING_KEY_LEN, ks as ML_KEM_768_CIPHERTEXT_LEN, kt as ML_KEM_768_ENCAPSULATION_KEY_LEN, ku as ML_KEM_768_SHARED_SECRET_LEN, F as MempoolClass, D as NativeEvmTxFields, kv as NativeTxExtension, kw as NativeTxExtensionDescriptor, kx as NativeTxExtensionLike, ky as NonceAad, kz as OperatorSealKeypair, kA as PlaintextSubmission, kB as SEAL_COMMIT_LEN, kC as SEAL_DK_LEN, kD as SEAL_EK_LEN, kE as SEAL_KEM_CT_LEN, kF as SEAL_KEM_SEED_LEN, kG as SEAL_KEY_LEN, kH as SEAL_NONCE_LEN, kI as SEAL_SHARE_LEN, kJ as SEAL_TAG_LEN, kK as STANDARD_ALGO_NUMBER_ML_DSA_65, kL as SealRandomSource, kM as SealRecipient, kN as SealedSubmission, kO as bincodeDecryptHint, kP as bincodeEncryptedEnvelope, kQ as bincodeNonceAad, kR as bincodeSignedTransaction, kS as buildEncryptedEnvelope, kT as buildEncryptedSubmission, kU as buildPlaintextSubmission, kV as cryptoRandomSource, kW as encodeMlDsa65Opaque, kX as encodeSealEnvelope, kY as encodeTransactionForHash, kZ as encryptInnerTx, k_ as fetchEncryptionKey, k$ as generateOperatorSealKeypair, l0 as getClusterSealKeys, l1 as mlDsa65AddressBytes, l2 as mlDsa65AddressFromPublicKey, l3 as outerSigDigest, l4 as parseClusterSealKeys, l5 as sealRosterHash, l6 as sealToCluster, l7 as sealTransaction, l8 as submitEncryptedEnvelope, l9 as submitPlaintextTransaction, la as submitSealedTransaction, lb as submitTransactionWithPrivacy } from '../submission-Cr6u_2he.cjs';
|
|
3
3
|
|
|
4
4
|
declare class BincodeWriter {
|
|
5
5
|
#private;
|
package/dist/crypto/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { I as MlDsa65Backend } from '../submission-
|
|
2
|
-
export { kb as ADDRESS_DERIVATION_DOMAIN, kc as CLUSTER_MLKEM_SHAMIR, kd as CLUSTER_MLKEM_SHAMIR_ALGO, ke as ClusterSealKeyEntryInput, K as ClusterSealKeys, L as ClusterSealKeysSource, kf as DKG_AEAD_TAG_LEN, kg as DKG_NONCE_LEN, kh as DecryptHint, ki as ENCRYPTED_SUBMISSION_UNAVAILABLE_MESSAGE, kj as ENUM_VARIANT_INDEX_ML_DSA_65, kk as EncryptedEnvelope, kl as EncryptedSubmission, E as EncryptionKey, km as JsonRpcCallClient, kn as LythiumSealEnvelope, ko as ML_DSA_65_PUBLIC_KEY_LEN, kp as ML_DSA_65_SEED_LEN, kq as ML_DSA_65_SIGNATURE_LEN, kr as ML_DSA_65_SIGNING_KEY_LEN, ks as ML_KEM_768_CIPHERTEXT_LEN, kt as ML_KEM_768_ENCAPSULATION_KEY_LEN, ku as ML_KEM_768_SHARED_SECRET_LEN, F as MempoolClass, D as NativeEvmTxFields, kv as NativeTxExtension, kw as NativeTxExtensionDescriptor, kx as NativeTxExtensionLike, ky as NonceAad, kz as OperatorSealKeypair, kA as PlaintextSubmission, kB as SEAL_COMMIT_LEN, kC as SEAL_DK_LEN, kD as SEAL_EK_LEN, kE as SEAL_KEM_CT_LEN, kF as SEAL_KEM_SEED_LEN, kG as SEAL_KEY_LEN, kH as SEAL_NONCE_LEN, kI as SEAL_SHARE_LEN, kJ as SEAL_TAG_LEN, kK as STANDARD_ALGO_NUMBER_ML_DSA_65, kL as SealRandomSource, kM as SealRecipient, kN as SealedSubmission, kO as bincodeDecryptHint, kP as bincodeEncryptedEnvelope, kQ as bincodeNonceAad, kR as bincodeSignedTransaction, kS as buildEncryptedEnvelope, kT as buildEncryptedSubmission, kU as buildPlaintextSubmission, kV as cryptoRandomSource, kW as encodeMlDsa65Opaque, kX as encodeSealEnvelope, kY as encodeTransactionForHash, kZ as encryptInnerTx, k_ as fetchEncryptionKey, k$ as generateOperatorSealKeypair, l0 as getClusterSealKeys, l1 as mlDsa65AddressBytes, l2 as mlDsa65AddressFromPublicKey, l3 as outerSigDigest, l4 as parseClusterSealKeys, l5 as sealRosterHash, l6 as sealToCluster, l7 as sealTransaction, l8 as submitEncryptedEnvelope, l9 as submitPlaintextTransaction, la as submitSealedTransaction, lb as submitTransactionWithPrivacy } from '../submission-
|
|
1
|
+
import { I as MlDsa65Backend } from '../submission-Cr6u_2he.js';
|
|
2
|
+
export { kb as ADDRESS_DERIVATION_DOMAIN, kc as CLUSTER_MLKEM_SHAMIR, kd as CLUSTER_MLKEM_SHAMIR_ALGO, ke as ClusterSealKeyEntryInput, K as ClusterSealKeys, L as ClusterSealKeysSource, kf as DKG_AEAD_TAG_LEN, kg as DKG_NONCE_LEN, kh as DecryptHint, ki as ENCRYPTED_SUBMISSION_UNAVAILABLE_MESSAGE, kj as ENUM_VARIANT_INDEX_ML_DSA_65, kk as EncryptedEnvelope, kl as EncryptedSubmission, E as EncryptionKey, km as JsonRpcCallClient, kn as LythiumSealEnvelope, ko as ML_DSA_65_PUBLIC_KEY_LEN, kp as ML_DSA_65_SEED_LEN, kq as ML_DSA_65_SIGNATURE_LEN, kr as ML_DSA_65_SIGNING_KEY_LEN, ks as ML_KEM_768_CIPHERTEXT_LEN, kt as ML_KEM_768_ENCAPSULATION_KEY_LEN, ku as ML_KEM_768_SHARED_SECRET_LEN, F as MempoolClass, D as NativeEvmTxFields, kv as NativeTxExtension, kw as NativeTxExtensionDescriptor, kx as NativeTxExtensionLike, ky as NonceAad, kz as OperatorSealKeypair, kA as PlaintextSubmission, kB as SEAL_COMMIT_LEN, kC as SEAL_DK_LEN, kD as SEAL_EK_LEN, kE as SEAL_KEM_CT_LEN, kF as SEAL_KEM_SEED_LEN, kG as SEAL_KEY_LEN, kH as SEAL_NONCE_LEN, kI as SEAL_SHARE_LEN, kJ as SEAL_TAG_LEN, kK as STANDARD_ALGO_NUMBER_ML_DSA_65, kL as SealRandomSource, kM as SealRecipient, kN as SealedSubmission, kO as bincodeDecryptHint, kP as bincodeEncryptedEnvelope, kQ as bincodeNonceAad, kR as bincodeSignedTransaction, kS as buildEncryptedEnvelope, kT as buildEncryptedSubmission, kU as buildPlaintextSubmission, kV as cryptoRandomSource, kW as encodeMlDsa65Opaque, kX as encodeSealEnvelope, kY as encodeTransactionForHash, kZ as encryptInnerTx, k_ as fetchEncryptionKey, k$ as generateOperatorSealKeypair, l0 as getClusterSealKeys, l1 as mlDsa65AddressBytes, l2 as mlDsa65AddressFromPublicKey, l3 as outerSigDigest, l4 as parseClusterSealKeys, l5 as sealRosterHash, l6 as sealToCluster, l7 as sealTransaction, l8 as submitEncryptedEnvelope, l9 as submitPlaintextTransaction, la as submitSealedTransaction, lb as submitTransactionWithPrivacy } from '../submission-Cr6u_2he.js';
|
|
3
3
|
|
|
4
4
|
declare class BincodeWriter {
|
|
5
5
|
#private;
|
package/dist/index.cjs
CHANGED
|
@@ -1263,7 +1263,7 @@ function slotClusterCharterMembers(clusterId) {
|
|
|
1263
1263
|
return slotClusterCharter(clusterId, NODE_REGISTRY_SUBKIND_CHARTER_MEMBER_SHARES);
|
|
1264
1264
|
}
|
|
1265
1265
|
function decodeActiveCharter(delegatorWord, membersWord) {
|
|
1266
|
-
const presence =
|
|
1266
|
+
const presence = leftPadToWord(toBytes(delegatorWord), "charterDelegatorWord");
|
|
1267
1267
|
let raw = 0n;
|
|
1268
1268
|
for (const b of presence) {
|
|
1269
1269
|
raw = raw << 8n | BigInt(b);
|
|
@@ -1272,7 +1272,7 @@ function decodeActiveCharter(delegatorWord, membersWord) {
|
|
|
1272
1272
|
return { present: false, delegatorShareBps: 0, memberShareBps: [] };
|
|
1273
1273
|
}
|
|
1274
1274
|
const delegatorShareBps = Number(raw - 1n > 0xffffn ? 0xffffn : raw - 1n);
|
|
1275
|
-
const packed =
|
|
1275
|
+
const packed = leftPadToWord(toBytes(membersWord), "charterMembersWord");
|
|
1276
1276
|
const memberShareBps = [];
|
|
1277
1277
|
for (let i = 0; i < NODE_REGISTRY_FORM_CLUSTER_MEMBER_COUNT; i += 1) {
|
|
1278
1278
|
const at = 12 + 2 * i;
|
|
@@ -1593,6 +1593,15 @@ function padToWord(bytes) {
|
|
|
1593
1593
|
out.set(bytes);
|
|
1594
1594
|
return out;
|
|
1595
1595
|
}
|
|
1596
|
+
function leftPadToWord(bytes, name) {
|
|
1597
|
+
if (bytes.length === 32) return bytes;
|
|
1598
|
+
if (bytes.length > 32) {
|
|
1599
|
+
throw new NodeRegistryError(`${name} must be <= 32 bytes, got ${bytes.length}`);
|
|
1600
|
+
}
|
|
1601
|
+
const out = new Uint8Array(32);
|
|
1602
|
+
out.set(bytes, 32 - bytes.length);
|
|
1603
|
+
return out;
|
|
1604
|
+
}
|
|
1596
1605
|
function toBytes(value) {
|
|
1597
1606
|
if (typeof value === "string") {
|
|
1598
1607
|
return hexToBytes(value);
|
|
@@ -1613,10 +1622,11 @@ function displayTextBytes(value, maxBytes, name) {
|
|
|
1613
1622
|
return bytes;
|
|
1614
1623
|
}
|
|
1615
1624
|
function hexToBytes(hex) {
|
|
1616
|
-
const
|
|
1617
|
-
if (
|
|
1625
|
+
const raw = hex.startsWith("0x") || hex.startsWith("0X") ? hex.slice(2) : hex;
|
|
1626
|
+
if (!/^[0-9a-fA-F]*$/.test(raw)) {
|
|
1618
1627
|
throw new NodeRegistryError("invalid hex bytes");
|
|
1619
1628
|
}
|
|
1629
|
+
const body = raw.length % 2 !== 0 ? `0${raw}` : raw;
|
|
1620
1630
|
const out = new Uint8Array(body.length / 2);
|
|
1621
1631
|
for (let i = 0; i < out.length; i++) {
|
|
1622
1632
|
out[i] = Number.parseInt(body.slice(i * 2, i * 2 + 2), 16);
|
|
@@ -4305,17 +4315,35 @@ var RpcClient = class _RpcClient {
|
|
|
4305
4315
|
async ethBlockNumber() {
|
|
4306
4316
|
return parseQuantityBig(await this.call(ethCompatMethod("blockNumber"), []));
|
|
4307
4317
|
}
|
|
4308
|
-
/**
|
|
4318
|
+
/**
|
|
4319
|
+
* `eth_getBalance` — balance + Merkle proof envelope.
|
|
4320
|
+
*
|
|
4321
|
+
* The node may answer with a bare `0x…` hex word or a proof-wrapped
|
|
4322
|
+
* object; both are normalized to a consistent {@link AccountProofResponse}
|
|
4323
|
+
* via {@link normalizeAccountProof} so `.value` is always the bare word.
|
|
4324
|
+
*/
|
|
4309
4325
|
async ethGetBalance(address, block = "latest") {
|
|
4310
|
-
return
|
|
4326
|
+
return normalizeAccountProof(
|
|
4327
|
+
await this.call("eth_getBalance", [address, encodeBlockSelector(block)])
|
|
4328
|
+
);
|
|
4311
4329
|
}
|
|
4312
|
-
/**
|
|
4330
|
+
/**
|
|
4331
|
+
* `eth_getStorageAt` — storage word + Merkle proof.
|
|
4332
|
+
*
|
|
4333
|
+
* The node returns a proof-wrapped object
|
|
4334
|
+
* `{ value, proof, stateRoot, blockNumber }` (some builds use a bare
|
|
4335
|
+
* `0x…` hex word). Both shapes are normalized to a consistent
|
|
4336
|
+
* {@link AccountProofResponse} via {@link normalizeAccountProof}; `.value`
|
|
4337
|
+
* is always the bare storage word (even-length hex, `0x0` when zero).
|
|
4338
|
+
*/
|
|
4313
4339
|
async ethGetStorageAt(address, slot, block = "latest") {
|
|
4314
|
-
return
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
|
|
4318
|
-
|
|
4340
|
+
return normalizeAccountProof(
|
|
4341
|
+
await this.call("eth_getStorageAt", [
|
|
4342
|
+
address,
|
|
4343
|
+
slot,
|
|
4344
|
+
encodeBlockSelector(block)
|
|
4345
|
+
])
|
|
4346
|
+
);
|
|
4319
4347
|
}
|
|
4320
4348
|
/** `eth_getTransactionCount` — sender nonce. */
|
|
4321
4349
|
async ethGetTransactionCount(address, block = "latest") {
|
|
@@ -4424,9 +4452,14 @@ var RpcClient = class _RpcClient {
|
|
|
4424
4452
|
async lythGetRegistration(peerId) {
|
|
4425
4453
|
return this.call("lyth_getRegistration", [peerId]);
|
|
4426
4454
|
}
|
|
4427
|
-
/**
|
|
4455
|
+
/**
|
|
4456
|
+
* `lyth_registryStateProof` — Merkle proof for a registry entry.
|
|
4457
|
+
*
|
|
4458
|
+
* Normalized through {@link normalizeAccountProof} so a bare-hex or
|
|
4459
|
+
* proof-wrapped answer both yield a consistent {@link AccountProofResponse}.
|
|
4460
|
+
*/
|
|
4428
4461
|
async lythRegistryStateProof(peerId) {
|
|
4429
|
-
return this.call("lyth_registryStateProof", [peerId]);
|
|
4462
|
+
return normalizeAccountProof(await this.call("lyth_registryStateProof", [peerId]));
|
|
4430
4463
|
}
|
|
4431
4464
|
/** `lyth_getAccountPolicy` — privacy posture for an account. */
|
|
4432
4465
|
async lythGetAccountPolicy(address) {
|
|
@@ -5348,6 +5381,38 @@ function parseQuantity(hex) {
|
|
|
5348
5381
|
}
|
|
5349
5382
|
return Number(big);
|
|
5350
5383
|
}
|
|
5384
|
+
function normalizeStorageWord(value) {
|
|
5385
|
+
if (value === null || value === void 0 || value === "") return "0x0";
|
|
5386
|
+
if (typeof value !== "string") {
|
|
5387
|
+
throw SdkError.malformed(`storage word is not a string: ${typeof value}`);
|
|
5388
|
+
}
|
|
5389
|
+
const body = value.startsWith("0x") || value.startsWith("0X") ? value.slice(2) : value;
|
|
5390
|
+
if (body.length === 0) return "0x0";
|
|
5391
|
+
if (!/^[0-9a-fA-F]+$/.test(body)) {
|
|
5392
|
+
throw SdkError.malformed(`invalid hex storage word: ${value}`);
|
|
5393
|
+
}
|
|
5394
|
+
return body.length % 2 === 0 ? `0x${body}` : `0x0${body}`;
|
|
5395
|
+
}
|
|
5396
|
+
function normalizeAccountProof(result) {
|
|
5397
|
+
if (typeof result === "string" || result === null || result === void 0) {
|
|
5398
|
+
return { value: normalizeStorageWord(result), state_root: "0x", block_number: 0n };
|
|
5399
|
+
}
|
|
5400
|
+
const obj = result;
|
|
5401
|
+
const stateRoot = obj.state_root ?? obj.stateRoot ?? "0x";
|
|
5402
|
+
const rawBlock = obj.block_number ?? obj.blockNumber ?? 0;
|
|
5403
|
+
let blockNumber;
|
|
5404
|
+
try {
|
|
5405
|
+
blockNumber = typeof rawBlock === "bigint" ? rawBlock : BigInt(rawBlock);
|
|
5406
|
+
} catch {
|
|
5407
|
+
blockNumber = 0n;
|
|
5408
|
+
}
|
|
5409
|
+
return {
|
|
5410
|
+
value: normalizeStorageWord(obj.value),
|
|
5411
|
+
state_root: stateRoot,
|
|
5412
|
+
block_number: blockNumber,
|
|
5413
|
+
proof: obj.proof ?? null
|
|
5414
|
+
};
|
|
5415
|
+
}
|
|
5351
5416
|
function encodeRpcInteger(v) {
|
|
5352
5417
|
if (typeof v === "bigint") return `0x${v.toString(16)}`;
|
|
5353
5418
|
return v;
|
|
@@ -12230,7 +12295,7 @@ var MONOLYTHIUM_NETWORKS = {
|
|
|
12230
12295
|
};
|
|
12231
12296
|
|
|
12232
12297
|
// src/index.ts
|
|
12233
|
-
var version = "0.4.
|
|
12298
|
+
var version = "0.4.18";
|
|
12234
12299
|
|
|
12235
12300
|
exports.ADDRESS_HRP = ADDRESS_HRP;
|
|
12236
12301
|
exports.ADDRESS_KIND_HRPS = ADDRESS_KIND_HRPS;
|