@qorechain/sdk 0.6.1 → 0.8.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/dist/index.d.ts CHANGED
@@ -213,6 +213,39 @@ interface PaginatedOptions {
213
213
  type RestClientOptions = HttpOptions;
214
214
  /** Relative urgency of a fee estimate. */
215
215
  type FeeUrgency = "fast" | "normal" | "slow";
216
+ /**
217
+ * REST shape of `GET /qorechain/abstractaccount/v1/permission_schema` — the
218
+ * canonical authenticator permission taxonomy (v3.1.85). `schema_version` bumps
219
+ * whenever the taxonomy or the mapping changes, so clients compare it to their
220
+ * embedded copy to detect drift.
221
+ */
222
+ interface PermissionSchemaResponse {
223
+ /** Version tag that bumps on any taxonomy/mapping change. */
224
+ schema_version: string;
225
+ /** Every valid permission string (e.g. `send`, `evm`, `svm`, `all`). */
226
+ permissions: string[];
227
+ /** Maps a message typeURL to the permission it requires. */
228
+ msg_permissions: Record<string, string>;
229
+ /** TypeURLs that are NEVER delegable to a linked authenticator key. */
230
+ key_management_msgs: string[];
231
+ }
232
+ /** REST shape of an abstract-account view (subset of `AccountView`). */
233
+ interface AbstractAccountView {
234
+ address: string;
235
+ contract_address?: string;
236
+ account_type?: string;
237
+ spending_rules_count?: number;
238
+ session_keys_count?: number;
239
+ created_at?: string;
240
+ owner?: string;
241
+ }
242
+ /** REST shape of the abstractaccount module config view. */
243
+ interface AbstractAccountConfigView {
244
+ enabled: boolean;
245
+ max_session_keys?: number;
246
+ max_spending_rules?: number;
247
+ default_session_ttl?: string;
248
+ }
216
249
  /** Native + QoreChain REST read client. */
217
250
  declare class RestClient {
218
251
  private readonly baseUrl;
@@ -252,6 +285,28 @@ declare class RestClient {
252
285
  getXqorePosition<T = Record<string, unknown>>(address: string): Promise<T>;
253
286
  /** Current inflation rate (`/qorechain/inflation/v1/rate`). */
254
287
  getInflationRate<T = Record<string, unknown>>(): Promise<T>;
288
+ /**
289
+ * The canonical authenticator permission taxonomy
290
+ * (`/qorechain/abstractaccount/v1/permission_schema`): the valid permission
291
+ * strings, the message-typeURL→permission mapping, the never-delegable
292
+ * key-management typeURLs, and a `schema_version` for drift detection.
293
+ */
294
+ getPermissionSchema(): Promise<PermissionSchemaResponse>;
295
+ /** Abstract-account module config (`/qorechain/abstractaccount/v1/config`). */
296
+ getAbstractAccountConfig<T = {
297
+ config: AbstractAccountConfigView;
298
+ }>(): Promise<T>;
299
+ /** All abstract accounts (`/qorechain/abstractaccount/v1/accounts`). */
300
+ getAbstractAccounts<T = {
301
+ accounts: AbstractAccountView[];
302
+ }>(): Promise<T>;
303
+ /**
304
+ * A single abstract account by address
305
+ * (`/qorechain/abstractaccount/v1/accounts/{address}`).
306
+ */
307
+ getAbstractAccount<T = {
308
+ account: AbstractAccountView;
309
+ }>(address: string): Promise<T>;
255
310
  }
256
311
 
257
312
  /**
@@ -494,6 +549,31 @@ interface BroadcastResult {
494
549
  gasWanted?: bigint;
495
550
  /** Raw ABCI log, when present. */
496
551
  rawLog?: string;
552
+ /**
553
+ * The ABCI events emitted by the tx (only for `commit`).
554
+ *
555
+ * Helpers that read typed attributes out of a delivery — e.g. the cross-VM
556
+ * client's message-id extraction — read them from here.
557
+ */
558
+ events?: ReadonlyArray<{
559
+ type: string;
560
+ attributes: ReadonlyArray<{
561
+ key: string;
562
+ value: string;
563
+ }>;
564
+ }>;
565
+ /**
566
+ * The protobuf-encoded `Msg*Response` for each message in the tx, in order
567
+ * (only for `commit`).
568
+ *
569
+ * Each entry is the response's `typeUrl` plus its encoded bytes, so a caller
570
+ * can decode the typed response — e.g. `MsgCrossVMCallResponse` to read a
571
+ * cross-VM callee's return value — without a second round-trip.
572
+ */
573
+ msgResponses?: ReadonlyArray<{
574
+ typeUrl: string;
575
+ value: Uint8Array;
576
+ }>;
497
577
  }
498
578
 
499
579
  /**
@@ -1500,11 +1580,29 @@ declare function generatePqcKeypair(seed?: Uint8Array): PqcKeypair;
1500
1580
  * `(secretKey, message)` always yields the same signature. The chain's PQC
1501
1581
  * verifier accepts ONLY deterministic signatures, so do not pass
1502
1582
  * `{ hedged: true }` for anything that goes on-chain.
1583
+ *
1584
+ * The secret key length is checked explicitly before the library is called (see
1585
+ * {@link pqcVerify} for why the bindings validate sizes themselves).
1586
+ *
1587
+ * @throws if `secretKey` is not exactly {@link ML_DSA_87_SECRET_KEY_LENGTH} bytes.
1503
1588
  */
1504
1589
  declare function pqcSign(secretKey: Uint8Array, message: Uint8Array, opts?: {
1505
1590
  hedged?: boolean;
1506
1591
  }): Uint8Array;
1507
- /** Verify an ML-DSA-87 (Dilithium-5) signature over a message. */
1592
+ /**
1593
+ * Verify an ML-DSA-87 (Dilithium-5) signature over a message.
1594
+ *
1595
+ * STRICT SIZES. The public key and signature must be EXACTLY
1596
+ * {@link ML_DSA_87_PUBLIC_KEY_LENGTH} and {@link ML_DSA_87_SIGNATURE_LENGTH}
1597
+ * bytes; anything else returns `false` without reaching the library. This is
1598
+ * enforced here, not left to the underlying implementation, because ML-DSA
1599
+ * libraries disagree about trailing garbage: some accept a signature with extra
1600
+ * bytes appended as valid while others reject it. A signature that one official
1601
+ * binding accepts and another rejects is a consensus hazard, so every QoreChain
1602
+ * binding applies the same exact-length rule before verifying.
1603
+ *
1604
+ * @returns `false` for a malformed input, exactly as for a bad signature.
1605
+ */
1508
1606
  declare function pqcVerify(publicKey: Uint8Array, message: Uint8Array, signature: Uint8Array): boolean;
1509
1607
  /**
1510
1608
  * The on-chain `PQCHybridSignature` TX extension, as a plain object whose keys
@@ -1696,49 +1794,52 @@ declare function deriveUnifiedAccount(mnemonic: string, index?: number): Promise
1696
1794
  * Same address derivation as {@link deriveUnifiedAccount}; the PQC key is derived
1697
1795
  * from `shake256("qorechain:pqc:v1|" + cosmos + "|seed:" + hex(seed32), 32)` (note
1698
1796
  * the literal `"seed:"` prefix, so a seed-derived PQC key never collides with a
1699
- * mnemonic-derived one). Use this for accounts anchored to a signature or an
1700
- * externally supplied secret (see the Phantom P1a helper).
1701
- *
1702
- * @param seed32 - Exactly 32 bytes, used directly as the secp256k1 private key.
1797
+ * mnemonic-derived one).
1798
+ *
1799
+ * SAFETY: `seed32` becomes the account's spend key, so it MUST be real secret
1800
+ * entropy a CSPRNG seed (`crypto.getRandomValues`) or a key derived from a
1801
+ * BIP-39 mnemonic. NEVER derive it from a wallet signature, or from any other
1802
+ * value a third party can ask the wallet (or the user) to produce: such a value
1803
+ * is a bearer secret, and whoever obtains it controls the account. To let an
1804
+ * external wallet key act for an account, use the authenticator lanes
1805
+ * (`MsgRegisterAuthenticator` + `MsgExecuteCosmos` / `MsgExecuteEVM`) instead.
1806
+ *
1807
+ * @param seed32 - Exactly 32 bytes of secret entropy, used directly as the
1808
+ * secp256k1 private key.
1703
1809
  * @throws if `seed32` is not 32 bytes or is not a valid secp256k1 scalar.
1704
1810
  */
1705
1811
  declare function unifiedAccountFromSeed(seed32: Uint8Array): UnifiedAccount;
1706
1812
 
1707
1813
  /**
1708
- * Phantom P1aderive a unified QoreChain account from a Phantom signature.
1814
+ * REMOVED in v0.8.0 the Phantom signature-derived account API.
1709
1815
  *
1710
- * A user can bootstrap ONE canonical QoreChain identity (native / EVM / SVM, one
1711
- * balance) from their Phantom wallet WITHOUT exporting any key: they sign a fixed,
1712
- * domain-separated message with Phantom's ed25519 key, and the 32-byte SHAKE-256
1713
- * of that signature seeds a unified eth-native secp256k1 account
1714
- * ({@link ../accounts/unified.unifiedAccountFromSeed}).
1715
- *
1716
- * This is NON-CUSTODIAL and produces a SEPARATE canonical key from the Phantom
1717
- * ed25519 key Phantom never sees the derived secp256k1/PQC secrets, and the
1718
- * derived account is a distinct on-chain identity, not the Phantom address. As
1719
- * long as the same Phantom key signs the same fixed message, the same QoreChain
1720
- * account is reproduced deterministically.
1816
+ * This module used to turn a wallet signature into a spend key. That is unsafe:
1817
+ * a wallet signature is a bearer secret that any page can ask the wallet to
1818
+ * produce, so it cannot stand in for secret entropy, and anyone who obtains it
1819
+ * controls the resulting account. The exported functions remain so existing
1820
+ * imports fail loudly with an explanation instead of silently changing meaning;
1821
+ * both throw as soon as they are called. Link an external wallet key through the
1822
+ * authenticator lanes instead register it with `MsgRegisterAuthenticator` and
1823
+ * spend via `MsgExecuteCosmos` / `MsgExecuteEVM`, which keeps the canonical
1824
+ * account's own key the only thing that can move funds. See the Authenticators
1825
+ * guide (`docs/docs/guides/authenticators.md`). Any account previously derived
1826
+ * through this API must be treated as exposed — move its funds.
1721
1827
  */
1722
1828
 
1723
1829
  /**
1724
- * The fixed domain-separation prefix signed by Phantom. The full signed message
1725
- * is this line, a newline, and the signer's base58 public key — binding the
1726
- * derivation to the specific Phantom key.
1727
- */
1728
- declare const PHANTOM_DERIVATION_DOMAIN = "QoreChain unified account derivation v1";
1729
- /**
1730
- * Derive a unified QoreChain account from a raw Phantom (ed25519) signature.
1830
+ * REMOVED in v0.8.0. Always throws.
1731
1831
  *
1732
- * The account seed is `shake256(signatureBytes, 32)`, used directly as the
1733
- * eth-native secp256k1 private key. Deterministic: the same signature always
1734
- * yields the same account.
1832
+ * Use the authenticator lanes instead see the module doc-comment and the
1833
+ * Authenticators guide.
1735
1834
  *
1736
- * @param signatureBytes - The raw ed25519 signature bytes returned by the wallet.
1835
+ * @throws always.
1737
1836
  */
1738
1837
  declare function unifiedAccountFromPhantomSignature(signatureBytes: Uint8Array): UnifiedAccount;
1739
1838
  /**
1740
- * The minimal shape of an injected Phantom-style provider used here: `connect`
1741
- * to obtain the public key and `signMessage` to sign the derivation message.
1839
+ * The minimal shape of an injected Phantom-style provider this module once used.
1840
+ *
1841
+ * Retained only so the removed {@link connectPhantomUnified} signature still
1842
+ * type-checks for existing callers; nothing here is called any more.
1742
1843
  */
1743
1844
  interface PhantomProvider {
1744
1845
  connect(): Promise<{
@@ -1753,26 +1854,18 @@ interface PhantomProvider {
1753
1854
  signature: Uint8Array;
1754
1855
  } | Uint8Array>;
1755
1856
  }
1756
- /** Options for {@link connectPhantomUnified}. */
1857
+ /** Options for the removed {@link connectPhantomUnified}. */
1757
1858
  interface ConnectPhantomUnifiedOptions {
1758
- /**
1759
- * The Phantom-style provider. Defaults to `window.solana` in a browser. Pass an
1760
- * explicit provider in tests or non-`window.solana` environments.
1761
- */
1859
+ /** The Phantom-style provider. Unused: the function always throws. */
1762
1860
  provider?: PhantomProvider;
1763
1861
  }
1764
1862
  /**
1765
- * Connect Phantom in the browser and derive the user's unified QoreChain account.
1863
+ * REMOVED in v0.8.0. Always throws.
1766
1864
  *
1767
- * Flow: `connect()` sign the fixed domain-separated message
1768
- * `"QoreChain unified account derivation v1\n<phantom-pubkey-base58>"` → derive the
1769
- * unified account from the signature via
1770
- * {@link unifiedAccountFromPhantomSignature}.
1865
+ * Use the authenticator lanes instead — see the module doc-comment and the
1866
+ * Authenticators guide.
1771
1867
  *
1772
- * NON-CUSTODIAL: the returned account is a separate canonical key from the Phantom
1773
- * ed25519 key; Phantom never handles the derived secp256k1/PQC secrets.
1774
- *
1775
- * @throws if no provider is available or the wallet returns no public key.
1868
+ * @throws always.
1776
1869
  */
1777
1870
  declare function connectPhantomUnified(opts?: ConnectPhantomUnifiedOptions): Promise<UnifiedAccount>;
1778
1871
 
@@ -2254,6 +2347,117 @@ interface RetryOptions {
2254
2347
  */
2255
2348
  declare function withRetry<T>(fn: (attempt: number) => Promise<T>, opts?: RetryOptions): Promise<T>;
2256
2349
 
2350
+ /**
2351
+ * Authenticator-lane sign-bytes (v3.1.85).
2352
+ *
2353
+ * QoreChain "authenticator lanes" let a linked external key (a Phantom ed25519
2354
+ * key, or an EVM secp256k1 key) spend from the ONE canonical PQC-required
2355
+ * account under least-privilege, spend-limited, revocable terms — WITHOUT the
2356
+ * external key ever producing an ML-DSA co-signature. A relayer submits and
2357
+ * pays fees (its own hybrid-PQC signature satisfies the ante on the envelope);
2358
+ * the authenticator's signature over the domain-separated, replay-bound
2359
+ * sign-bytes below IS the authorization.
2360
+ *
2361
+ * There are three lanes:
2362
+ * - EVM lane — `MsgExecuteEVM`: an EVM call/transfer from the account's
2363
+ * 0x address, authorized by {@link evmAuthSignBytes}.
2364
+ * - Native lane — `MsgExecuteCosmos`: a bank send from the account, authorized
2365
+ * by {@link cosmosAuthSignBytes}.
2366
+ * - Key rotation — `MsgRotatePQCKey`: dual-signed over
2367
+ * {@link rotationSignBytes}.
2368
+ *
2369
+ * The digests here are rebuilt BYTE-FOR-BYTE from what the chain re-derives
2370
+ * (`x/abstractaccount/types/{evm,cosmos}_sign.go`, `x/pqc/types` rotation
2371
+ * bytes). A mismatch is rejected on-chain (codespace `abstractaccount`, code 11
2372
+ * replay / 10 permission / 5 spending-limit / 6 session-expired; codespace
2373
+ * `pqc`, code 21 hybrid-verify-failed).
2374
+ *
2375
+ * These are pure byte-builders — no wallet, no network. See
2376
+ * {@link ../wallet/authenticator} for the DX builders that sign them.
2377
+ */
2378
+ /** 8-byte big-endian encoding of a non-negative integer (`binary.BigEndian`). */
2379
+ declare function be64(n: number | bigint): Uint8Array;
2380
+ /** Length-prefixed field: `BE64(len) ‖ bytes` (the chain's framing). */
2381
+ declare function lengthPrefixed(bytes: Uint8Array): Uint8Array;
2382
+ /** Input to {@link evmAuthSignBytes}. */
2383
+ interface EvmAuthSignBytesInput {
2384
+ /** The chain id (e.g. `qorechain-diana`). */
2385
+ chainId: string;
2386
+ /** The bech32 canonical account the authenticator acts for. */
2387
+ account: string;
2388
+ /** The authenticator's raw public key (32 bytes for ed25519; the 20-byte eth address for secp256k1). */
2389
+ pubkey: Uint8Array;
2390
+ /** 0x-hex recipient/contract address; empty string for contract creation. */
2391
+ to?: string;
2392
+ /** Native QOR amount in wei (aqor) as a decimal string. */
2393
+ value?: string;
2394
+ /** EVM calldata. */
2395
+ data?: Uint8Array;
2396
+ /**
2397
+ * The account's CURRENT EVM nonce. The relayer is a DIFFERENT account than the
2398
+ * owner, so the relayer envelope does NOT bump the account's nonce — use the
2399
+ * current value as-is (do NOT +1).
2400
+ */
2401
+ nonce: number | bigint;
2402
+ }
2403
+ /**
2404
+ * Rebuild the 32-byte digest the chain re-derives for a `MsgExecuteEVM`:
2405
+ *
2406
+ * ```
2407
+ * sha256( "qorechain-evm-auth-v1"
2408
+ * ‖ LP(chainId) ‖ LP(account) ‖ LP(pubkey)
2409
+ * ‖ LP(to) ‖ LP(value) ‖ LP(data) ‖ BE64(nonce) )
2410
+ * ```
2411
+ *
2412
+ * where `LP(x) = BE64(len(x)) ‖ x`. Returns the raw 32 bytes the authenticator
2413
+ * signs.
2414
+ */
2415
+ declare function evmAuthSignBytes(input: EvmAuthSignBytesInput): Uint8Array;
2416
+ /** Input to {@link cosmosAuthSignBytes}. */
2417
+ interface CosmosAuthSignBytesInput {
2418
+ /** The chain id (e.g. `qorechain-diana`). */
2419
+ chainId: string;
2420
+ /** The bech32 canonical account the authenticator acts for. */
2421
+ account: string;
2422
+ /** The authenticator's raw public key (32 bytes for ed25519; the 20-byte eth address for secp256k1). */
2423
+ pubkey: Uint8Array;
2424
+ /** The bech32 recipient address. */
2425
+ to: string;
2426
+ /** The CANONICAL single-coin amount string (e.g. `100uqor`). */
2427
+ amount: string;
2428
+ /**
2429
+ * The per-authenticator sequence for `(account, pubkey)` — a store counter
2430
+ * distinct from the account's own sequence, incremented on each successful
2431
+ * Native-lane spend.
2432
+ */
2433
+ nonce: number | bigint;
2434
+ }
2435
+ /**
2436
+ * Rebuild the 32-byte digest the chain re-derives for a `MsgExecuteCosmos`:
2437
+ *
2438
+ * ```
2439
+ * sha256( "qorechain-cosmos-auth-v1"
2440
+ * ‖ LP(chainId) ‖ LP(account) ‖ LP(pubkey)
2441
+ * ‖ LP(to) ‖ LP(amount) ‖ BE64(nonce) )
2442
+ * ```
2443
+ *
2444
+ * `amount` is the canonical single-coin string (e.g. `100uqor`). Returns the
2445
+ * raw 32 bytes the authenticator signs.
2446
+ */
2447
+ declare function cosmosAuthSignBytes(input: CosmosAuthSignBytesInput): Uint8Array;
2448
+ /**
2449
+ * The domain-separated STRING both the old and the new key sign for a
2450
+ * `MsgRotatePQCKey`:
2451
+ *
2452
+ * ```
2453
+ * "qorechain-pqc-rotate-v1|<chainId>|<algorithmId>|<account>|<oldHex>|<newHex>"
2454
+ * ```
2455
+ *
2456
+ * `oldHex`/`newHex` are lowercase hex of the public keys. Sign `utf8(result)`
2457
+ * with BOTH the old and the new key.
2458
+ */
2459
+ declare function rotationSignBytes(chainId: string, algorithmId: number, account: string, oldPub: Uint8Array, newPub: Uint8Array): string;
2460
+
2257
2461
  /**
2258
2462
  * Encoding and attachment of the QoreChain PQC hybrid-signature extension to a
2259
2463
  * native tx.
@@ -2327,6 +2531,161 @@ declare function encodeHybridExtension(ext: PQCHybridSignature$1): Any;
2327
2531
  */
2328
2532
  declare function attachHybridExtension(body: TxBody, ext: PQCHybridSignature$1, opts?: AttachHybridOptions): TxBody;
2329
2533
 
2534
+ /**
2535
+ * Sign-bytes for the payloads a QoreChain key signs outside SIGN_MODE_DIRECT:
2536
+ * the post-quantum half of a hybrid transaction, a PQC key migration, and a
2537
+ * bridge attestation. Each exists in two forms, and a network verifies exactly
2538
+ * ONE of them at any height — there is no overlap window.
2539
+ *
2540
+ * ──────────────────────────────────────────────────────────────────────────
2541
+ * Which form to sign
2542
+ * ──────────────────────────────────────────────────────────────────────────
2543
+ * Chain release v3.1.98 introduced the v2 forms, which bind a domain tag and
2544
+ * the chain id. Networks that existed before it (`qorechain-vladi`,
2545
+ * `qorechain-diana`) verify v1 until the `v3.1.98` upgrade plan is applied on
2546
+ * that network, and v2 from then on. Any other chain verifies v2 from its first
2547
+ * block. The testnet and mainnet switch at different heights, so a client must
2548
+ * ask the target network rather than hardcode either form:
2549
+ *
2550
+ * GET {rest}/cosmos/upgrade/v1beta1/applied_plan/v3.1.98 -> {"height":"<n>"}
2551
+ * v2 iff n > 0, or the chain is not one of the legacy networks.
2552
+ *
2553
+ * The height is an int64 and crosses the REST gateway as a STRING; a network
2554
+ * that has not upgraded answers `{"height":"0"}` (or `{}` on older nodes), so
2555
+ * the decision is numeric, never a presence check.
2556
+ *
2557
+ * {@link resolveSignBytesVersion} does this with a short cache;
2558
+ * {@link signBytesVersionFor} is the pure rule for callers that already know
2559
+ * the applied height.
2560
+ */
2561
+
2562
+ /** A concrete sign-bytes form. */
2563
+ type SignBytesVersion = "v1" | "v2";
2564
+ /** A form, or `"auto"` to ask the target network. */
2565
+ type SignBytesVersionOption = SignBytesVersion | "auto";
2566
+ /** The upgrade plan whose application switches a legacy network to v2. */
2567
+ declare const SIGN_BYTES_V2_UPGRADE = "v3.1.98";
2568
+ /** Networks that ran before v2 existed and switch only at {@link SIGN_BYTES_V2_UPGRADE}. */
2569
+ declare const LEGACY_SIGN_BYTES_CHAINS: readonly string[];
2570
+ /** Domain tag of the v2 hybrid PQC sign-bytes. */
2571
+ declare const HYBRID_SIGN_BYTES_V2_DOMAIN = "qorechain-pqc-hybrid-v2";
2572
+ /** Domain tag of the v2 PQC key-migration sign-bytes. */
2573
+ declare const MIGRATION_SIGN_BYTES_V2_DOMAIN = "qorechain-key-migration-v2";
2574
+ /** Domain tag of the v2 bridge attestation sign-bytes. */
2575
+ declare const BRIDGE_ATTESTATION_V2_DOMAIN = "qorechain-bridge-attestation-v2";
2576
+ /** v1 hybrid form: `BE32(len B0) ‖ B0 ‖ BE32(len A) ‖ A`. */
2577
+ declare function hybridSignBytesV1(b0: Uint8Array, authInfo: Uint8Array): Uint8Array;
2578
+ /**
2579
+ * v2 hybrid form:
2580
+ * `"qorechain-pqc-hybrid-v2" ‖ BE64(len chainId) ‖ chainId ‖ BE32(len B0) ‖ B0 ‖ BE32(len A) ‖ A`.
2581
+ */
2582
+ declare function hybridSignBytesV2(chainId: string, b0: Uint8Array, authInfo: Uint8Array): Uint8Array;
2583
+ /**
2584
+ * The message the ML-DSA key signs for a hybrid transaction, in the given form.
2585
+ * `B0` is the `TxBody` WITHOUT the PQC extension; `authInfo` is the AuthInfo
2586
+ * bytes verbatim.
2587
+ */
2588
+ declare function hybridSignBytes(version: SignBytesVersion, chainId: string, b0: Uint8Array, authInfo: Uint8Array): Uint8Array;
2589
+ /** Inputs of the key-migration sign-bytes (both keys sign the same bytes). */
2590
+ interface MigrationSignBytesInput {
2591
+ chainId: string;
2592
+ /** The migrating account's `qor1…` address. */
2593
+ account: string;
2594
+ fromAlgorithmId: number;
2595
+ toAlgorithmId: number;
2596
+ /** The height the migration executes at. */
2597
+ height: number | bigint;
2598
+ /** The current public key (v2 only). */
2599
+ oldPublicKey: Uint8Array;
2600
+ /** The destination public key (v2 only). */
2601
+ newPublicKey: Uint8Array;
2602
+ }
2603
+ /**
2604
+ * v1 key-migration form (ASCII):
2605
+ * `qorechain-key-migration:chain=<chainId>:from=<from>:to=<to>:account=<account>:height=<height>`.
2606
+ */
2607
+ declare function migrationSignBytesV1(input: Omit<MigrationSignBytesInput, "oldPublicKey" | "newPublicKey">): Uint8Array;
2608
+ /**
2609
+ * v2 key-migration form:
2610
+ * `"qorechain-key-migration-v2" ‖ BE64(len chainId) ‖ chainId ‖ BE64(len account) ‖ account ‖
2611
+ * BE32(from) ‖ BE32(to) ‖ BE64(height) ‖ BE32(len oldPub) ‖ oldPub ‖ BE32(len newPub) ‖ newPub`.
2612
+ */
2613
+ declare function migrationSignBytesV2(input: MigrationSignBytesInput): Uint8Array;
2614
+ /** The key-migration sign-bytes in the given form. */
2615
+ declare function migrationSignBytes(version: SignBytesVersion, input: MigrationSignBytesInput): Uint8Array;
2616
+ /** Inputs of a bridge attestation payload (validator signers only). */
2617
+ interface BridgeAttestationSignBytesInput {
2618
+ chainId: string;
2619
+ chain: string;
2620
+ eventType: string;
2621
+ operationId: string;
2622
+ txHash: string;
2623
+ /** The amount as the chain prints it (`math.Int.String()`). */
2624
+ amount: string;
2625
+ asset: string;
2626
+ }
2627
+ /** v1 attestation form (ASCII, no chain id): `chain|eventType|operationId|txHash|amount|asset`. */
2628
+ declare function bridgeAttestationSignBytesV1(input: Omit<BridgeAttestationSignBytesInput, "chainId">): Uint8Array;
2629
+ /**
2630
+ * v2 attestation form: `"qorechain-bridge-attestation-v2"` then, for each of
2631
+ * `[chainId, chain, eventType, operationId, txHash, amount, asset]`, `BE64(len f) ‖ f`.
2632
+ */
2633
+ declare function bridgeAttestationSignBytesV2(input: BridgeAttestationSignBytesInput): Uint8Array;
2634
+ /** The bridge attestation sign-bytes in the given form. */
2635
+ declare function bridgeAttestationSignBytes(version: SignBytesVersion, input: BridgeAttestationSignBytesInput): Uint8Array;
2636
+ /** True when `chainId` is a network that verifies v1 until its v3.1.98 upgrade. */
2637
+ declare function isLegacySignBytesChain(chainId: string): boolean;
2638
+ /**
2639
+ * The form a network verifies, given the height at which the v3.1.98 plan was
2640
+ * applied on it (0 when it has not been). Client-side mirror of the chain's
2641
+ * own switch.
2642
+ */
2643
+ declare function signBytesVersionFor(chainId: string, v2AppliedHeight: number | bigint): SignBytesVersion;
2644
+ /**
2645
+ * Ask a node at which height the v3.1.98 plan was applied (0 when not).
2646
+ * @throws on a transport or parse failure — the caller must not guess.
2647
+ */
2648
+ declare function fetchSignBytesV2AppliedHeight(rest: string, fetchImpl?: FetchLike): Promise<bigint>;
2649
+ /** Options for {@link resolveSignBytesVersion}. */
2650
+ interface ResolveSignBytesVersionOptions {
2651
+ chainId: string;
2652
+ /** The network's REST (LCD) base URL. Required for `"auto"` on a legacy network. */
2653
+ rest?: string;
2654
+ /** `"auto"` (default) asks the network; `"v1"`/`"v2"` are returned as-is. */
2655
+ signBytesVersion?: SignBytesVersionOption;
2656
+ /** Injectable `fetch`. Defaults to `globalThis.fetch`. */
2657
+ fetch?: FetchLike;
2658
+ /** How long an answer is reused, in ms. Defaults to 60000. */
2659
+ ttlMs?: number;
2660
+ /** Bypass the cache (e.g. after a `pqc` code 21 refusal). */
2661
+ forceRefresh?: boolean;
2662
+ }
2663
+ /** Forget every cached answer. */
2664
+ declare function clearSignBytesCache(): void;
2665
+ /**
2666
+ * The form to sign for a network right now.
2667
+ *
2668
+ * - `"v1"` / `"v2"`: returned unchanged, no network call.
2669
+ * - `"auto"` on a chain that is not a legacy network: `"v2"`, no network call.
2670
+ * - `"auto"` on `qorechain-vladi` / `qorechain-diana`: asks `rest` whether the
2671
+ * v3.1.98 plan is applied; the answer is cached per (rest, chainId) for
2672
+ * `ttlMs` because a network can upgrade while a wallet stays open.
2673
+ *
2674
+ * @throws when a legacy network has no `rest`, or the query fails. Pass an
2675
+ * explicit `"v1"`/`"v2"` in that case — a wrong guess is refused on-chain.
2676
+ */
2677
+ declare function resolveSignBytesVersion(opts: ResolveSignBytesVersionOptions): Promise<SignBytesVersion>;
2678
+ /** The chain's message for a hybrid signature that does not verify (`pqc` code 21). */
2679
+ declare const HYBRID_SIGN_BYTES_REJECTION_LOG = "hybrid PQC signature verification failed";
2680
+ /**
2681
+ * True when a broadcast failure is the chain refusing the hybrid PQC signature
2682
+ * (`pqc` code 21) — the symptom of signing the wrong sign-bytes form. Accepts a
2683
+ * thrown cosmjs `BroadcastTxError` (`code`, `codespace`, `log`), a
2684
+ * `DeliverTxResponse`-like result (`code`, `rawLog`), or a plain `Error`.
2685
+ * Code 21 from any other codespace does NOT match.
2686
+ */
2687
+ declare function isHybridSignBytesRejection(x: unknown): boolean;
2688
+
2330
2689
  /**
2331
2690
  * End-to-end hybrid (classical + post-quantum) transaction signing for
2332
2691
  * QoreChain.
@@ -2347,8 +2706,14 @@ declare function attachHybridExtension(body: TxBody, ext: PQCHybridSignature$1,
2347
2706
  * messages/memo/timeoutHeight but NOT the `PQCHybridSignature` extension.
2348
2707
  * - `A` = the tx `authInfoBytes`, verbatim — the same bytes that are
2349
2708
  * broadcast.
2350
- * - PQC signed message = `BE32(len(B0)) || B0 || BE32(len(A)) || A`
2351
- * (4-byte big-endian length prefixes; NO hashing, NO domain prefix).
2709
+ * - PQC signed message = the hybrid sign-bytes in the form the TARGET network
2710
+ * verifies (see ./signbytes):
2711
+ * v1: `BE32(len(B0)) || B0 || BE32(len(A)) || A`
2712
+ * v2: `"qorechain-pqc-hybrid-v2" || BE64(len chainId) || chainId || v1-body`
2713
+ * A network verifies exactly one form at any height. `qorechain-vladi` and
2714
+ * `qorechain-diana` switch from v1 to v2 when their v3.1.98 upgrade is
2715
+ * applied (at different heights); other chains are v2 from genesis. The
2716
+ * default `signBytesVersion: "auto"` asks the network (needs `rest`).
2352
2717
  * - PQC signature = `ml_dsa87.sign(pqcSecretKey, message)` (pure
2353
2718
  * ML-DSA-87, empty context) — 4627 bytes for Dilithium-5.
2354
2719
  * - The `PQCHybridSignature` extension is then added to
@@ -2411,6 +2776,19 @@ interface BuildHybridTxOptions {
2411
2776
  * is expected to already be registered via `MsgRegisterPQCKey`).
2412
2777
  */
2413
2778
  includePqcPublicKey?: boolean;
2779
+ /**
2780
+ * Which hybrid sign-bytes form to sign. `"auto"` (default) asks the network
2781
+ * via `rest` (see {@link resolveSignBytesVersion}); `"v1"` / `"v2"` force a
2782
+ * form. On `qorechain-vladi` / `qorechain-diana`, `"auto"` without `rest`
2783
+ * throws rather than guess.
2784
+ */
2785
+ signBytesVersion?: SignBytesVersionOption;
2786
+ /** The network's REST (LCD) base URL, used by `signBytesVersion: "auto"`. */
2787
+ rest?: string;
2788
+ /** Injectable `fetch` for the `"auto"` lookup. Defaults to `globalThis.fetch`. */
2789
+ fetch?: FetchLike;
2790
+ /** Bypass the cached `"auto"` answer. */
2791
+ forceRefreshSignBytesVersion?: boolean;
2414
2792
  }
2415
2793
  /** The fully assembled hybrid transaction and the intermediate artifacts. */
2416
2794
  interface BuiltHybridTx {
@@ -2424,6 +2802,8 @@ interface BuiltHybridTx {
2424
2802
  pqcSignedMessage: Uint8Array;
2425
2803
  /** The raw ML-DSA-87 signature (Dilithium-5: 4627 bytes). */
2426
2804
  pqcSignature: Uint8Array;
2805
+ /** The sign-bytes form the PQC signature was computed over. */
2806
+ signBytesVersion: SignBytesVersion;
2427
2807
  }
2428
2808
  /**
2429
2809
  * Build a fully signed hybrid transaction following the chain contract.
@@ -2500,8 +2880,8 @@ declare function signAndBroadcastHybrid(opts: SignAndBroadcastHybridOptions): Pr
2500
2880
  * only for the one-time, bootstrap-exempt `MsgRegisterPQCKeyV2`).
2501
2881
  *
2502
2882
  * The hybrid PQC framing/extension reuse the SDK's existing, live-testnet-verified
2503
- * helpers ({@link ../tx/hybrid.encodeHybridExtension}, the `BE32(len)`-prefixed
2504
- * frame, and {@link ../accounts/pqc.buildHybridSignatureExtension}); only the
2883
+ * helpers ({@link ../tx/hybrid.encodeHybridExtension}, the per-network hybrid
2884
+ * sign-bytes ({@link ./signbytes.hybridSignBytes}), and {@link ../accounts/pqc.buildHybridSignatureExtension}); only the
2505
2885
  * classical hash (keccak vs sha256) and the pubkey type URL change here.
2506
2886
  */
2507
2887
 
@@ -2544,6 +2924,13 @@ interface EthSignParams {
2544
2924
  * `value` is already a `Uint8Array`) are accepted.
2545
2925
  */
2546
2926
  encodeMessage?: (m: EncodeObject) => Any;
2927
+ /**
2928
+ * The hybrid sign-bytes form (hybrid signing only). Resolve it with
2929
+ * {@link resolveSignBytesVersion} for the target network. When omitted, a
2930
+ * chain born on v2 gets `"v2"`; on `qorechain-vladi` / `qorechain-diana`
2931
+ * (which switch at their own upgrade heights) omitting it throws.
2932
+ */
2933
+ signBytesVersion?: SignBytesVersion;
2547
2934
  }
2548
2935
  /** The result of an eth-native sign: the broadcastable `TxRaw` and artifacts. */
2549
2936
  interface SignedEthTx {
@@ -2570,7 +2957,8 @@ declare function signClassicalEth(params: EthSignParams): SignedEthTx;
2570
2957
  * Sign a native tx with the eth_secp256k1 + ML-DSA-87 HYBRID scheme.
2571
2958
  *
2572
2959
  * The chain verifies the PQC signature over the tx body WITHOUT the PQC extension
2573
- * (`B0`), framed with `authInfoBytes`: `BE32(len B0) || B0 || BE32(len A) || A`.
2960
+ * (`B0`) and `authInfoBytes`, in the hybrid sign-bytes form the network verifies
2961
+ * (`params.signBytesVersion`, see ./signbytes).
2574
2962
  * The classical signature then covers the FINAL body (with the extension) via
2575
2963
  * SIGN_MODE_DIRECT (keccak256 hash). This mirrors the SDK's existing hybrid path
2576
2964
  * ({@link ../tx/hybrid-tx.buildHybridTx}); only the classical hash and the pubkey
@@ -2629,6 +3017,15 @@ interface EthNativeSignerOptions {
2629
3017
  * `MsgRegisterPQCKeyV2`).
2630
3018
  */
2631
3019
  signMode?: "hybrid" | "classical";
3020
+ /**
3021
+ * Hybrid sign-bytes form. `"auto"` (default) asks the network via `rest` in
3022
+ * {@link EthNativeSigner.signAndBroadcast}; `"v1"` / `"v2"` force a form.
3023
+ */
3024
+ signBytesVersion?: SignBytesVersionOption;
3025
+ /** The network's REST (LCD) base URL, used by `signBytesVersion: "auto"`. */
3026
+ rest?: string;
3027
+ /** Injectable `fetch` for the `"auto"` lookup. */
3028
+ fetch?: FetchLike;
2632
3029
  }
2633
3030
  /** Params for building/broadcasting a tx with {@link EthNativeSigner}. */
2634
3031
  interface EthTxParams extends AccountSequence {
@@ -2637,6 +3034,11 @@ interface EthTxParams extends AccountSequence {
2637
3034
  fee: StdFee;
2638
3035
  memo?: string;
2639
3036
  timeoutHeight?: bigint;
3037
+ /**
3038
+ * The resolved hybrid sign-bytes form for {@link EthNativeSigner.sign}.
3039
+ * {@link EthNativeSigner.signAndBroadcast} resolves it when omitted.
3040
+ */
3041
+ signBytesVersion?: SignBytesVersion;
2640
3042
  }
2641
3043
  /**
2642
3044
  * Sign QoreChain native txs from a unified eth-native account.
@@ -2651,7 +3053,15 @@ declare class EthNativeSigner {
2651
3053
  private readonly key;
2652
3054
  private readonly registry;
2653
3055
  private readonly signMode;
3056
+ private readonly signBytesVersion;
3057
+ private readonly rest?;
3058
+ private readonly fetchImpl?;
2654
3059
  constructor(account: UnifiedAccount, opts?: EthNativeSignerOptions);
3060
+ /**
3061
+ * The hybrid sign-bytes form for `chainId` under this signer's settings.
3062
+ * Pass `forceRefresh` to bypass the cached answer.
3063
+ */
3064
+ resolveSignBytesVersion(chainId: string, forceRefresh?: boolean): Promise<SignBytesVersion>;
2655
3065
  /** Encode a message to `Any` via the bound registry. */
2656
3066
  private encode;
2657
3067
  /** Build and sign a `TxRaw` for the given messages. Does not broadcast. */
@@ -2729,7 +3139,7 @@ declare const SvmAccountMeta: MessageFns$p<SvmAccountMeta>;
2729
3139
  /**
2730
3140
  * SVMAuth carries a foreign-scheme (e.g. Phantom ed25519) authorization for an
2731
3141
  * SVM action. When present on MsgExecuteProgram, the EFFECTIVE SVM signer is the
2732
- * canonical account this key authenticates (verified on-chain), NOT the Native
3142
+ * canonical account this key authenticates (verified on-chain), NOT the Cosmos
2733
3143
  * `sender` — so any funded account may relay a Phantom-authorized action through
2734
3144
  * consensus while the foreign key remains the authority.
2735
3145
  */
@@ -2764,6 +3174,41 @@ declare const MsgRegisterSVMPQCKey: MessageFns$p<MsgRegisterSVMPQCKey>;
2764
3174
  interface MsgRegisterSVMPQCKeyResponse {
2765
3175
  }
2766
3176
  declare const MsgRegisterSVMPQCKeyResponse: MessageFns$p<MsgRegisterSVMPQCKeyResponse>;
3177
+ /**
3178
+ * SVMParams mirrors the module's runtime parameters so governance can replace
3179
+ * them wholesale. The store keeps them as JSON, so the handler converts.
3180
+ */
3181
+ interface SVMParams {
3182
+ maxProgramSize: string;
3183
+ maxAccountDataSize: string;
3184
+ computeBudgetMax: string;
3185
+ lamportsPerByte: string;
3186
+ rentExemptionMulti: string;
3187
+ enabled: boolean;
3188
+ svmSlotOffset: string;
3189
+ defaultSigScheme: number;
3190
+ maxCpi: number;
3191
+ }
3192
+ declare const SVMParams: MessageFns$p<SVMParams>;
3193
+ /**
3194
+ * MsgUpdateParams replaces the SVM runtime parameters wholesale.
3195
+ *
3196
+ * WHY THIS EXISTS. Until now x/svm had no governance message at all, so there was
3197
+ * no transaction that could turn the lane off. When the August 2026 incident
3198
+ * required closing it, the only available guarantee was a compile-time constant
3199
+ * (SVMLaneHardDisabled), which means every later change of mind costs a binary
3200
+ * release and a coordinated upgrade. With this message, disabling the lane is a
3201
+ * governance proposal like any other.
3202
+ */
3203
+ interface MsgUpdateParams {
3204
+ /** authority must be the governance module account. */
3205
+ authority: string;
3206
+ params?: SVMParams | undefined;
3207
+ }
3208
+ declare const MsgUpdateParams: MessageFns$p<MsgUpdateParams>;
3209
+ interface MsgUpdateParamsResponse {
3210
+ }
3211
+ declare const MsgUpdateParamsResponse: MessageFns$p<MsgUpdateParamsResponse>;
2767
3212
  type MsgDefinition$a = typeof MsgDefinition$a;
2768
3213
  declare const MsgDefinition$a: {
2769
3214
  readonly name: "Msg";
@@ -2801,6 +3246,14 @@ declare const MsgDefinition$a: {
2801
3246
  readonly responseStream: false;
2802
3247
  readonly options: {};
2803
3248
  };
3249
+ readonly updateParams: {
3250
+ readonly name: "UpdateParams";
3251
+ readonly requestType: typeof MsgUpdateParams;
3252
+ readonly requestStream: false;
3253
+ readonly responseType: typeof MsgUpdateParamsResponse;
3254
+ readonly responseStream: false;
3255
+ readonly options: {};
3256
+ };
2804
3257
  };
2805
3258
  };
2806
3259
  type Builtin$p = Date | Function | Uint8Array | string | number | boolean | undefined;
@@ -2824,10 +3277,13 @@ declare const tx$a_MsgExecuteProgram: typeof MsgExecuteProgram;
2824
3277
  declare const tx$a_MsgExecuteProgramResponse: typeof MsgExecuteProgramResponse;
2825
3278
  declare const tx$a_MsgRegisterSVMPQCKey: typeof MsgRegisterSVMPQCKey;
2826
3279
  declare const tx$a_MsgRegisterSVMPQCKeyResponse: typeof MsgRegisterSVMPQCKeyResponse;
3280
+ declare const tx$a_MsgUpdateParams: typeof MsgUpdateParams;
3281
+ declare const tx$a_MsgUpdateParamsResponse: typeof MsgUpdateParamsResponse;
2827
3282
  declare const tx$a_SVMAuth: typeof SVMAuth;
3283
+ declare const tx$a_SVMParams: typeof SVMParams;
2828
3284
  declare const tx$a_SvmAccountMeta: typeof SvmAccountMeta;
2829
3285
  declare namespace tx$a {
2830
- export { type DeepPartial$p as DeepPartial, type MessageFns$p as MessageFns, tx$a_MsgCreateAccount as MsgCreateAccount, tx$a_MsgCreateAccountResponse as MsgCreateAccountResponse, MsgDefinition$a as MsgDefinition, tx$a_MsgDeployProgram as MsgDeployProgram, tx$a_MsgDeployProgramResponse as MsgDeployProgramResponse, tx$a_MsgExecuteProgram as MsgExecuteProgram, tx$a_MsgExecuteProgramResponse as MsgExecuteProgramResponse, tx$a_MsgRegisterSVMPQCKey as MsgRegisterSVMPQCKey, tx$a_MsgRegisterSVMPQCKeyResponse as MsgRegisterSVMPQCKeyResponse, tx$a_SVMAuth as SVMAuth, tx$a_SvmAccountMeta as SvmAccountMeta, protobufPackage$o as protobufPackage };
3286
+ export { type DeepPartial$p as DeepPartial, type MessageFns$p as MessageFns, tx$a_MsgCreateAccount as MsgCreateAccount, tx$a_MsgCreateAccountResponse as MsgCreateAccountResponse, MsgDefinition$a as MsgDefinition, tx$a_MsgDeployProgram as MsgDeployProgram, tx$a_MsgDeployProgramResponse as MsgDeployProgramResponse, tx$a_MsgExecuteProgram as MsgExecuteProgram, tx$a_MsgExecuteProgramResponse as MsgExecuteProgramResponse, tx$a_MsgRegisterSVMPQCKey as MsgRegisterSVMPQCKey, tx$a_MsgRegisterSVMPQCKeyResponse as MsgRegisterSVMPQCKeyResponse, tx$a_MsgUpdateParams as MsgUpdateParams, tx$a_MsgUpdateParamsResponse as MsgUpdateParamsResponse, tx$a_SVMAuth as SVMAuth, tx$a_SVMParams as SVMParams, tx$a_SvmAccountMeta as SvmAccountMeta, protobufPackage$o as protobufPackage };
2831
3287
  }
2832
3288
 
2833
3289
  declare const protobufPackage$n = "qorechain.bridge.v1";
@@ -3732,6 +4188,24 @@ declare const MsgMigratePQCKey: MessageFns$j<MsgMigratePQCKey>;
3732
4188
  interface MsgMigratePQCKeyResponse {
3733
4189
  }
3734
4190
  declare const MsgMigratePQCKeyResponse: MessageFns$j<MsgMigratePQCKeyResponse>;
4191
+ /**
4192
+ * MsgRotatePQCKey replaces an account's PQC key with a new key of the SAME
4193
+ * algorithm. Both signatures are over the domain-separated bytes
4194
+ * "qorechain-pqc-rotate-v1|chainid|algo|account|oldkey|newkey" (no block height —
4195
+ * the signer cannot predict it; replay is prevented because after the rotation
4196
+ * the old key no longer matches the registered key).
4197
+ */
4198
+ interface MsgRotatePQCKey {
4199
+ sender: string;
4200
+ oldPublicKey: Uint8Array;
4201
+ newPublicKey: Uint8Array;
4202
+ oldSignature: Uint8Array;
4203
+ newSignature: Uint8Array;
4204
+ }
4205
+ declare const MsgRotatePQCKey: MessageFns$j<MsgRotatePQCKey>;
4206
+ interface MsgRotatePQCKeyResponse {
4207
+ }
4208
+ declare const MsgRotatePQCKeyResponse: MessageFns$j<MsgRotatePQCKeyResponse>;
3735
4209
  /** MsgDeprecateAlgorithm proposes deprecating an algorithm (starts migration period). */
3736
4210
  interface MsgDeprecateAlgorithm {
3737
4211
  authority: string;
@@ -3786,6 +4260,20 @@ declare const MsgDefinition$5: {
3786
4260
  readonly responseStream: false;
3787
4261
  readonly options: {};
3788
4262
  };
4263
+ /**
4264
+ * RotatePQCKey replaces an account's PQC key with a NEW key of the SAME
4265
+ * algorithm — for rotating a compromised key or moving a legacy-derived key to
4266
+ * the canonical derivation. Dual-signed (old proves ownership, new proves
4267
+ * control); needs no active algorithm migration.
4268
+ */
4269
+ readonly rotatePQCKey: {
4270
+ readonly name: "RotatePQCKey";
4271
+ readonly requestType: typeof MsgRotatePQCKey;
4272
+ readonly requestStream: false;
4273
+ readonly responseType: typeof MsgRotatePQCKeyResponse;
4274
+ readonly responseStream: false;
4275
+ readonly options: {};
4276
+ };
3789
4277
  /** DeprecateAlgorithm starts the migration period for an algorithm (governance). */
3790
4278
  readonly deprecateAlgorithm: {
3791
4279
  readonly name: "DeprecateAlgorithm";
@@ -3829,8 +4317,10 @@ declare const tx$5_MsgRegisterPQCKey: typeof MsgRegisterPQCKey;
3829
4317
  declare const tx$5_MsgRegisterPQCKeyResponse: typeof MsgRegisterPQCKeyResponse;
3830
4318
  declare const tx$5_MsgRegisterPQCKeyV2: typeof MsgRegisterPQCKeyV2;
3831
4319
  declare const tx$5_MsgRegisterPQCKeyV2Response: typeof MsgRegisterPQCKeyV2Response;
4320
+ declare const tx$5_MsgRotatePQCKey: typeof MsgRotatePQCKey;
4321
+ declare const tx$5_MsgRotatePQCKeyResponse: typeof MsgRotatePQCKeyResponse;
3832
4322
  declare namespace tx$5 {
3833
- export { type DeepPartial$j as DeepPartial, type MessageFns$j as MessageFns, MsgDefinition$5 as MsgDefinition, tx$5_MsgDeprecateAlgorithm as MsgDeprecateAlgorithm, tx$5_MsgDeprecateAlgorithmResponse as MsgDeprecateAlgorithmResponse, tx$5_MsgDisableAlgorithm as MsgDisableAlgorithm, tx$5_MsgDisableAlgorithmResponse as MsgDisableAlgorithmResponse, tx$5_MsgMigratePQCKey as MsgMigratePQCKey, tx$5_MsgMigratePQCKeyResponse as MsgMigratePQCKeyResponse, tx$5_MsgRegisterPQCKey as MsgRegisterPQCKey, tx$5_MsgRegisterPQCKeyResponse as MsgRegisterPQCKeyResponse, tx$5_MsgRegisterPQCKeyV2 as MsgRegisterPQCKeyV2, tx$5_MsgRegisterPQCKeyV2Response as MsgRegisterPQCKeyV2Response, protobufPackage$j as protobufPackage };
4323
+ export { type DeepPartial$j as DeepPartial, type MessageFns$j as MessageFns, MsgDefinition$5 as MsgDefinition, tx$5_MsgDeprecateAlgorithm as MsgDeprecateAlgorithm, tx$5_MsgDeprecateAlgorithmResponse as MsgDeprecateAlgorithmResponse, tx$5_MsgDisableAlgorithm as MsgDisableAlgorithm, tx$5_MsgDisableAlgorithmResponse as MsgDisableAlgorithmResponse, tx$5_MsgMigratePQCKey as MsgMigratePQCKey, tx$5_MsgMigratePQCKeyResponse as MsgMigratePQCKeyResponse, tx$5_MsgRegisterPQCKey as MsgRegisterPQCKey, tx$5_MsgRegisterPQCKeyResponse as MsgRegisterPQCKeyResponse, tx$5_MsgRegisterPQCKeyV2 as MsgRegisterPQCKeyV2, tx$5_MsgRegisterPQCKeyV2Response as MsgRegisterPQCKeyV2Response, tx$5_MsgRotatePQCKey as MsgRotatePQCKey, tx$5_MsgRotatePQCKeyResponse as MsgRotatePQCKeyResponse, protobufPackage$j as protobufPackage };
3834
4324
  }
3835
4325
 
3836
4326
  declare const protobufPackage$i = "qorechain.lightnode.v1";
@@ -4098,6 +4588,79 @@ declare const MsgRevokeAuthenticator: MessageFns$g<MsgRevokeAuthenticator>;
4098
4588
  interface MsgRevokeAuthenticatorResponse {
4099
4589
  }
4100
4590
  declare const MsgRevokeAuthenticatorResponse: MessageFns$g<MsgRevokeAuthenticatorResponse>;
4591
+ /**
4592
+ * MsgExecuteEVM executes an EVM call/transfer authorized by a linked
4593
+ * authenticator (v3.1.85). The relayer submits + pays fees; the authenticator
4594
+ * (scheme,pubkey) signs the domain-separated sign-bytes binding chain-id, the
4595
+ * canonical account, the pubkey, to/value/data and the account's expected EVM
4596
+ * nonce (replay protection — the nonce must equal the account's current EVM
4597
+ * nonce, and executing the call increments it, so a signature cannot be replayed).
4598
+ * The chain resolves the authenticator, checks the "evm" permission + SpendingRule
4599
+ * against `value`, then executes the call FROM the canonical account's EVM address.
4600
+ */
4601
+ interface MsgExecuteEVM {
4602
+ relayer: string;
4603
+ /** bech32 canonical account (the authenticator's owner) */
4604
+ account: string;
4605
+ /** "ed25519" | "secp256k1" */
4606
+ scheme: string;
4607
+ /** authenticator public key */
4608
+ pubkey: Uint8Array;
4609
+ /** authenticator signature over the EVM auth sign-bytes */
4610
+ signature: Uint8Array;
4611
+ /** 0x-hex recipient/contract; empty = contract create */
4612
+ to: string;
4613
+ /** native QOR amount in wei (aqor), decimal string */
4614
+ value: string;
4615
+ /** EVM calldata */
4616
+ data: Uint8Array;
4617
+ gasLimit: string;
4618
+ /** MUST equal the account's current EVM nonce */
4619
+ nonce: string;
4620
+ }
4621
+ declare const MsgExecuteEVM: MessageFns$g<MsgExecuteEVM>;
4622
+ interface MsgExecuteEVMResponse {
4623
+ success: boolean;
4624
+ ret: Uint8Array;
4625
+ gasUsed: string;
4626
+ vmError: string;
4627
+ }
4628
+ declare const MsgExecuteEVMResponse: MessageFns$g<MsgExecuteEVMResponse>;
4629
+ /**
4630
+ * MsgExecuteCosmos executes a Native-lane (Cosmos) bank transfer authorized by a
4631
+ * linked authenticator (v3.1.85). It is the Native counterpart of MsgExecuteEVM:
4632
+ * the relayer submits + pays fees and signs the outer tx (so the account's own
4633
+ * PQC-required signature is not needed — the relayer's hybrid-PQC signature
4634
+ * satisfies the ante on the envelope), while the authenticator (scheme,pubkey)
4635
+ * signs the domain-separated sign-bytes binding chain-id, the canonical account,
4636
+ * the pubkey, the recipient, the amount and a per-authenticator sequence (replay:
4637
+ * nonce must equal the account+key's current sequence, incremented on success).
4638
+ * The chain resolves the authenticator, checks the "send" permission + SpendingRule
4639
+ * against `amount`, then moves the coins FROM the canonical account via x/bank.
4640
+ * This lets an external key (Phantom ed25519 / EVM secp256k1) spend native QOR from
4641
+ * a PQC-required account under least-privilege, spend-limited, revocable terms.
4642
+ */
4643
+ interface MsgExecuteCosmos {
4644
+ relayer: string;
4645
+ /** bech32 canonical account (the authenticator's owner) */
4646
+ account: string;
4647
+ /** "ed25519" | "secp256k1" */
4648
+ scheme: string;
4649
+ /** authenticator public key */
4650
+ pubkey: Uint8Array;
4651
+ /** authenticator signature over the Cosmos auth sign-bytes */
4652
+ signature: Uint8Array;
4653
+ /** bech32 recipient */
4654
+ to: string;
4655
+ amount: Coin[];
4656
+ /** MUST equal the account+key's current authenticator sequence */
4657
+ nonce: string;
4658
+ }
4659
+ declare const MsgExecuteCosmos: MessageFns$g<MsgExecuteCosmos>;
4660
+ interface MsgExecuteCosmosResponse {
4661
+ success: boolean;
4662
+ }
4663
+ declare const MsgExecuteCosmosResponse: MessageFns$g<MsgExecuteCosmosResponse>;
4101
4664
  /** Msg defines the abstractaccount module's transaction service. */
4102
4665
  type MsgDefinition$2 = typeof MsgDefinition$2;
4103
4666
  declare const MsgDefinition$2: {
@@ -4136,6 +4699,22 @@ declare const MsgDefinition$2: {
4136
4699
  readonly responseStream: false;
4137
4700
  readonly options: {};
4138
4701
  };
4702
+ readonly executeEVM: {
4703
+ readonly name: "ExecuteEVM";
4704
+ readonly requestType: typeof MsgExecuteEVM;
4705
+ readonly requestStream: false;
4706
+ readonly responseType: typeof MsgExecuteEVMResponse;
4707
+ readonly responseStream: false;
4708
+ readonly options: {};
4709
+ };
4710
+ readonly executeCosmos: {
4711
+ readonly name: "ExecuteCosmos";
4712
+ readonly requestType: typeof MsgExecuteCosmos;
4713
+ readonly requestStream: false;
4714
+ readonly responseType: typeof MsgExecuteCosmosResponse;
4715
+ readonly responseStream: false;
4716
+ readonly options: {};
4717
+ };
4139
4718
  };
4140
4719
  };
4141
4720
  type Builtin$g = Date | Function | Uint8Array | string | number | boolean | undefined;
@@ -4153,6 +4732,10 @@ interface MessageFns$g<T> {
4153
4732
 
4154
4733
  declare const tx$2_MsgCreateAbstractAccount: typeof MsgCreateAbstractAccount;
4155
4734
  declare const tx$2_MsgCreateAbstractAccountResponse: typeof MsgCreateAbstractAccountResponse;
4735
+ declare const tx$2_MsgExecuteCosmos: typeof MsgExecuteCosmos;
4736
+ declare const tx$2_MsgExecuteCosmosResponse: typeof MsgExecuteCosmosResponse;
4737
+ declare const tx$2_MsgExecuteEVM: typeof MsgExecuteEVM;
4738
+ declare const tx$2_MsgExecuteEVMResponse: typeof MsgExecuteEVMResponse;
4156
4739
  declare const tx$2_MsgRegisterAuthenticator: typeof MsgRegisterAuthenticator;
4157
4740
  declare const tx$2_MsgRegisterAuthenticatorResponse: typeof MsgRegisterAuthenticatorResponse;
4158
4741
  declare const tx$2_MsgRevokeAuthenticator: typeof MsgRevokeAuthenticator;
@@ -4161,21 +4744,41 @@ declare const tx$2_MsgUpdateSpendingRules: typeof MsgUpdateSpendingRules;
4161
4744
  declare const tx$2_MsgUpdateSpendingRulesResponse: typeof MsgUpdateSpendingRulesResponse;
4162
4745
  declare const tx$2_SpendingRule: typeof SpendingRule;
4163
4746
  declare namespace tx$2 {
4164
- export { type DeepPartial$g as DeepPartial, type MessageFns$g as MessageFns, tx$2_MsgCreateAbstractAccount as MsgCreateAbstractAccount, tx$2_MsgCreateAbstractAccountResponse as MsgCreateAbstractAccountResponse, MsgDefinition$2 as MsgDefinition, tx$2_MsgRegisterAuthenticator as MsgRegisterAuthenticator, tx$2_MsgRegisterAuthenticatorResponse as MsgRegisterAuthenticatorResponse, tx$2_MsgRevokeAuthenticator as MsgRevokeAuthenticator, tx$2_MsgRevokeAuthenticatorResponse as MsgRevokeAuthenticatorResponse, tx$2_MsgUpdateSpendingRules as MsgUpdateSpendingRules, tx$2_MsgUpdateSpendingRulesResponse as MsgUpdateSpendingRulesResponse, tx$2_SpendingRule as SpendingRule, protobufPackage$g as protobufPackage };
4747
+ export { type DeepPartial$g as DeepPartial, type MessageFns$g as MessageFns, tx$2_MsgCreateAbstractAccount as MsgCreateAbstractAccount, tx$2_MsgCreateAbstractAccountResponse as MsgCreateAbstractAccountResponse, MsgDefinition$2 as MsgDefinition, tx$2_MsgExecuteCosmos as MsgExecuteCosmos, tx$2_MsgExecuteCosmosResponse as MsgExecuteCosmosResponse, tx$2_MsgExecuteEVM as MsgExecuteEVM, tx$2_MsgExecuteEVMResponse as MsgExecuteEVMResponse, tx$2_MsgRegisterAuthenticator as MsgRegisterAuthenticator, tx$2_MsgRegisterAuthenticatorResponse as MsgRegisterAuthenticatorResponse, tx$2_MsgRevokeAuthenticator as MsgRevokeAuthenticator, tx$2_MsgRevokeAuthenticatorResponse as MsgRevokeAuthenticatorResponse, tx$2_MsgUpdateSpendingRules as MsgUpdateSpendingRules, tx$2_MsgUpdateSpendingRulesResponse as MsgUpdateSpendingRulesResponse, tx$2_SpendingRule as SpendingRule, protobufPackage$g as protobufPackage };
4165
4748
  }
4166
4749
 
4167
4750
  declare const protobufPackage$f = "qorechain.crossvm.v1";
4168
4751
  interface MsgCrossVMCall {
4169
4752
  sender: string;
4753
+ /**
4754
+ * source_vm is IGNORED on input. The chain derives the origin lane from the
4755
+ * execution context, because a caller describing itself cannot be evidence of
4756
+ * what it is. Retained so the field number stays taken and older clients that
4757
+ * still set it are accepted rather than rejected.
4758
+ */
4170
4759
  sourceVm: string;
4171
4760
  targetVm: string;
4172
4761
  targetContract: string;
4173
4762
  payload: Uint8Array;
4174
4763
  funds: Coin[];
4764
+ /**
4765
+ * async queues the call instead of executing it, to be dispatched later by
4766
+ * ProcessQueue. The default is to execute now and return the answer, which is
4767
+ * what a caller that needs the result requires.
4768
+ */
4769
+ async: boolean;
4175
4770
  }
4176
4771
  declare const MsgCrossVMCall: MessageFns$f<MsgCrossVMCall>;
4177
4772
  interface MsgCrossVMCallResponse {
4178
4773
  messageId: string;
4774
+ /** executed is false for a queued call, whose result is not known yet. */
4775
+ executed: boolean;
4776
+ /**
4777
+ * data is the callee's return value, carried back to the caller. A CosmWasm
4778
+ * contract reads it from the submessage reply.
4779
+ */
4780
+ data: Uint8Array;
4781
+ gasUsed: string;
4179
4782
  }
4180
4783
  declare const MsgCrossVMCallResponse: MessageFns$f<MsgCrossVMCallResponse>;
4181
4784
  interface MsgProcessQueue {
@@ -4191,7 +4794,11 @@ declare const MsgDefinition$1: {
4191
4794
  readonly name: "Msg";
4192
4795
  readonly fullName: "qorechain.crossvm.v1.Msg";
4193
4796
  readonly methods: {
4194
- /** CrossVMCall submits a cross-VM message to the queue. */
4797
+ /**
4798
+ * CrossVMCall invokes a contract on another VM. It executes within the
4799
+ * transaction and returns the callee's answer, unless async is set, in which
4800
+ * case it is queued for ProcessQueue to dispatch later.
4801
+ */
4195
4802
  readonly crossVMCall: {
4196
4803
  readonly name: "CrossVMCall";
4197
4804
  readonly requestType: typeof MsgCrossVMCall;
@@ -4430,6 +5037,14 @@ declare const pqc: {
4430
5037
  migratePqcKey: (value: PartialMsg<MsgMigratePQCKey>) => EncodeObject;
4431
5038
  deprecateAlgorithm: (value: PartialMsg<MsgDeprecateAlgorithm>) => EncodeObject;
4432
5039
  disableAlgorithm: (value: PartialMsg<MsgDisableAlgorithm>) => EncodeObject;
5040
+ /**
5041
+ * Replace an account's PQC key with a NEW key of the SAME algorithm (rotate a
5042
+ * compromised key, or migrate a legacy-derived key to the canonical
5043
+ * derivation). Dual-signed over the domain-separated rotation bytes (the old
5044
+ * key proves ownership, the new key proves control). Sender-signed; broadcast
5045
+ * BY the account, cosigned (hybrid) with the OLD key.
5046
+ */
5047
+ rotatePqcKey: (value: PartialMsg<MsgRotatePQCKey>) => EncodeObject;
4433
5048
  };
4434
5049
  /** SVM (virtual machine programs/accounts) message composers. */
4435
5050
  declare const svm: {
@@ -4437,6 +5052,17 @@ declare const svm: {
4437
5052
  createAccount: (value: PartialMsg<MsgCreateAccount>) => EncodeObject;
4438
5053
  executeProgram: (value: PartialMsg<MsgExecuteProgram>) => EncodeObject;
4439
5054
  registerSvmPqcKey: (value: PartialMsg<MsgRegisterSVMPQCKey>) => EncodeObject;
5055
+ /**
5056
+ * Replace the x/svm runtime parameters wholesale (chain v3.1.97).
5057
+ *
5058
+ * GOVERNANCE ONLY: `authority` must be the governance module account, so this
5059
+ * message is submitted inside a gov proposal, not signed by a user. It is what
5060
+ * makes enabling/disabling the SVM lane a proposal rather than a binary
5061
+ * release. `params` is replaced in full — send every field, not just the ones
5062
+ * you mean to change. `rentExemptionMulti` is a `LegacyDec` string (e.g.
5063
+ * `"2.000000000000000000"`).
5064
+ */
5065
+ updateParams: (value: PartialMsg<MsgUpdateParams>) => EncodeObject;
4440
5066
  };
4441
5067
  /** Light-node lifecycle message composers. */
4442
5068
  declare const lightnode: {
@@ -4464,6 +5090,20 @@ declare const abstractaccount: {
4464
5090
  registerAuthenticator: (value: PartialMsg<MsgRegisterAuthenticator>) => EncodeObject;
4465
5091
  /** Instantly disable a previously linked wallet key. Owner-signed. */
4466
5092
  revokeAuthenticator: (value: PartialMsg<MsgRevokeAuthenticator>) => EncodeObject;
5093
+ /**
5094
+ * EVM-lane spend: execute an EVM call/transfer FROM the canonical account's
5095
+ * 0x address, authorized by a linked authenticator's signature over the EVM
5096
+ * auth sign-bytes. Relayer-signed (it submits + pays fees). See
5097
+ * {@link ../tx/authenticator.evmAuthSignBytes}.
5098
+ */
5099
+ executeEvm: (value: PartialMsg<MsgExecuteEVM>) => EncodeObject;
5100
+ /**
5101
+ * Native-lane spend: move native QOR FROM the canonical account via x/bank,
5102
+ * authorized by a linked authenticator's signature over the Cosmos auth
5103
+ * sign-bytes. Relayer-signed (it submits + pays fees). See
5104
+ * {@link ../tx/authenticator.cosmosAuthSignBytes}.
5105
+ */
5106
+ executeCosmos: (value: PartialMsg<MsgExecuteCosmos>) => EncodeObject;
4467
5107
  };
4468
5108
  /** Cross-VM message composers. */
4469
5109
  declare const crossvm: {
@@ -6041,11 +6681,9 @@ declare const msg: {
6041
6681
  algorithmId?: number | undefined;
6042
6682
  reason?: string | undefined;
6043
6683
  }) => _cosmjs_proto_signing.EncodeObject;
6044
- };
6045
- readonly svm: {
6046
- deployProgram: (value: {
6684
+ rotatePqcKey: (value: {
6047
6685
  sender?: string | undefined;
6048
- bytecode?: {
6686
+ oldPublicKey?: {
6049
6687
  [x: number]: number | undefined;
6050
6688
  readonly BYTES_PER_ELEMENT?: number | undefined;
6051
6689
  readonly buffer?: ({
@@ -6090,10 +6728,7 @@ declare const msg: {
6090
6728
  [Symbol.iterator]?: {} | undefined;
6091
6729
  readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
6092
6730
  } | undefined;
6093
- }) => _cosmjs_proto_signing.EncodeObject;
6094
- createAccount: (value: {
6095
- sender?: string | undefined;
6096
- owner?: {
6731
+ newPublicKey?: {
6097
6732
  [x: number]: number | undefined;
6098
6733
  readonly BYTES_PER_ELEMENT?: number | undefined;
6099
6734
  readonly buffer?: ({
@@ -6138,9 +6773,7 @@ declare const msg: {
6138
6773
  [Symbol.iterator]?: {} | undefined;
6139
6774
  readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
6140
6775
  } | undefined;
6141
- space?: string | undefined;
6142
- lamports?: string | undefined;
6143
- salt?: {
6776
+ oldSignature?: {
6144
6777
  [x: number]: number | undefined;
6145
6778
  readonly BYTES_PER_ELEMENT?: number | undefined;
6146
6779
  readonly buffer?: ({
@@ -6185,10 +6818,7 @@ declare const msg: {
6185
6818
  [Symbol.iterator]?: {} | undefined;
6186
6819
  readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
6187
6820
  } | undefined;
6188
- }) => _cosmjs_proto_signing.EncodeObject;
6189
- executeProgram: (value: {
6190
- sender?: string | undefined;
6191
- programId?: {
6821
+ newSignature?: {
6192
6822
  [x: number]: number | undefined;
6193
6823
  readonly BYTES_PER_ELEMENT?: number | undefined;
6194
6824
  readonly buffer?: ({
@@ -6233,48 +6863,241 @@ declare const msg: {
6233
6863
  [Symbol.iterator]?: {} | undefined;
6234
6864
  readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
6235
6865
  } | undefined;
6236
- accounts?: ({
6237
- address?: {
6238
- [x: number]: number | undefined;
6239
- readonly BYTES_PER_ELEMENT?: number | undefined;
6240
- readonly buffer?: ({
6241
- readonly byteLength?: number | undefined;
6242
- slice?: {} | undefined;
6243
- readonly [Symbol.toStringTag]?: "ArrayBuffer" | undefined;
6244
- } | {
6245
- readonly byteLength?: number | undefined;
6246
- slice?: {} | undefined;
6247
- readonly [Symbol.toStringTag]?: "SharedArrayBuffer" | undefined;
6248
- }) | undefined;
6866
+ }) => _cosmjs_proto_signing.EncodeObject;
6867
+ };
6868
+ readonly svm: {
6869
+ deployProgram: (value: {
6870
+ sender?: string | undefined;
6871
+ bytecode?: {
6872
+ [x: number]: number | undefined;
6873
+ readonly BYTES_PER_ELEMENT?: number | undefined;
6874
+ readonly buffer?: ({
6249
6875
  readonly byteLength?: number | undefined;
6250
- readonly byteOffset?: number | undefined;
6251
- copyWithin?: {} | undefined;
6252
- every?: {} | undefined;
6253
- fill?: {} | undefined;
6254
- filter?: {} | undefined;
6255
- find?: {} | undefined;
6256
- findIndex?: {} | undefined;
6257
- forEach?: {} | undefined;
6258
- indexOf?: {} | undefined;
6259
- join?: {} | undefined;
6260
- lastIndexOf?: {} | undefined;
6261
- readonly length?: number | undefined;
6262
- map?: {} | undefined;
6263
- reduce?: {} | undefined;
6264
- reduceRight?: {} | undefined;
6265
- reverse?: {} | undefined;
6266
- set?: {} | undefined;
6267
6876
  slice?: {} | undefined;
6268
- some?: {} | undefined;
6269
- sort?: {} | undefined;
6270
- subarray?: {} | undefined;
6271
- toLocaleString?: {} | undefined;
6272
- toString?: {} | undefined;
6273
- valueOf?: {} | undefined;
6274
- entries?: {} | undefined;
6275
- keys?: {} | undefined;
6276
- values?: {} | undefined;
6277
- includes?: {} | undefined;
6877
+ readonly [Symbol.toStringTag]?: "ArrayBuffer" | undefined;
6878
+ } | {
6879
+ readonly byteLength?: number | undefined;
6880
+ slice?: {} | undefined;
6881
+ readonly [Symbol.toStringTag]?: "SharedArrayBuffer" | undefined;
6882
+ }) | undefined;
6883
+ readonly byteLength?: number | undefined;
6884
+ readonly byteOffset?: number | undefined;
6885
+ copyWithin?: {} | undefined;
6886
+ every?: {} | undefined;
6887
+ fill?: {} | undefined;
6888
+ filter?: {} | undefined;
6889
+ find?: {} | undefined;
6890
+ findIndex?: {} | undefined;
6891
+ forEach?: {} | undefined;
6892
+ indexOf?: {} | undefined;
6893
+ join?: {} | undefined;
6894
+ lastIndexOf?: {} | undefined;
6895
+ readonly length?: number | undefined;
6896
+ map?: {} | undefined;
6897
+ reduce?: {} | undefined;
6898
+ reduceRight?: {} | undefined;
6899
+ reverse?: {} | undefined;
6900
+ set?: {} | undefined;
6901
+ slice?: {} | undefined;
6902
+ some?: {} | undefined;
6903
+ sort?: {} | undefined;
6904
+ subarray?: {} | undefined;
6905
+ toLocaleString?: {} | undefined;
6906
+ toString?: {} | undefined;
6907
+ valueOf?: {} | undefined;
6908
+ entries?: {} | undefined;
6909
+ keys?: {} | undefined;
6910
+ values?: {} | undefined;
6911
+ includes?: {} | undefined;
6912
+ at?: {} | undefined;
6913
+ [Symbol.iterator]?: {} | undefined;
6914
+ readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
6915
+ } | undefined;
6916
+ }) => _cosmjs_proto_signing.EncodeObject;
6917
+ createAccount: (value: {
6918
+ sender?: string | undefined;
6919
+ owner?: {
6920
+ [x: number]: number | undefined;
6921
+ readonly BYTES_PER_ELEMENT?: number | undefined;
6922
+ readonly buffer?: ({
6923
+ readonly byteLength?: number | undefined;
6924
+ slice?: {} | undefined;
6925
+ readonly [Symbol.toStringTag]?: "ArrayBuffer" | undefined;
6926
+ } | {
6927
+ readonly byteLength?: number | undefined;
6928
+ slice?: {} | undefined;
6929
+ readonly [Symbol.toStringTag]?: "SharedArrayBuffer" | undefined;
6930
+ }) | undefined;
6931
+ readonly byteLength?: number | undefined;
6932
+ readonly byteOffset?: number | undefined;
6933
+ copyWithin?: {} | undefined;
6934
+ every?: {} | undefined;
6935
+ fill?: {} | undefined;
6936
+ filter?: {} | undefined;
6937
+ find?: {} | undefined;
6938
+ findIndex?: {} | undefined;
6939
+ forEach?: {} | undefined;
6940
+ indexOf?: {} | undefined;
6941
+ join?: {} | undefined;
6942
+ lastIndexOf?: {} | undefined;
6943
+ readonly length?: number | undefined;
6944
+ map?: {} | undefined;
6945
+ reduce?: {} | undefined;
6946
+ reduceRight?: {} | undefined;
6947
+ reverse?: {} | undefined;
6948
+ set?: {} | undefined;
6949
+ slice?: {} | undefined;
6950
+ some?: {} | undefined;
6951
+ sort?: {} | undefined;
6952
+ subarray?: {} | undefined;
6953
+ toLocaleString?: {} | undefined;
6954
+ toString?: {} | undefined;
6955
+ valueOf?: {} | undefined;
6956
+ entries?: {} | undefined;
6957
+ keys?: {} | undefined;
6958
+ values?: {} | undefined;
6959
+ includes?: {} | undefined;
6960
+ at?: {} | undefined;
6961
+ [Symbol.iterator]?: {} | undefined;
6962
+ readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
6963
+ } | undefined;
6964
+ space?: string | undefined;
6965
+ lamports?: string | undefined;
6966
+ salt?: {
6967
+ [x: number]: number | undefined;
6968
+ readonly BYTES_PER_ELEMENT?: number | undefined;
6969
+ readonly buffer?: ({
6970
+ readonly byteLength?: number | undefined;
6971
+ slice?: {} | undefined;
6972
+ readonly [Symbol.toStringTag]?: "ArrayBuffer" | undefined;
6973
+ } | {
6974
+ readonly byteLength?: number | undefined;
6975
+ slice?: {} | undefined;
6976
+ readonly [Symbol.toStringTag]?: "SharedArrayBuffer" | undefined;
6977
+ }) | undefined;
6978
+ readonly byteLength?: number | undefined;
6979
+ readonly byteOffset?: number | undefined;
6980
+ copyWithin?: {} | undefined;
6981
+ every?: {} | undefined;
6982
+ fill?: {} | undefined;
6983
+ filter?: {} | undefined;
6984
+ find?: {} | undefined;
6985
+ findIndex?: {} | undefined;
6986
+ forEach?: {} | undefined;
6987
+ indexOf?: {} | undefined;
6988
+ join?: {} | undefined;
6989
+ lastIndexOf?: {} | undefined;
6990
+ readonly length?: number | undefined;
6991
+ map?: {} | undefined;
6992
+ reduce?: {} | undefined;
6993
+ reduceRight?: {} | undefined;
6994
+ reverse?: {} | undefined;
6995
+ set?: {} | undefined;
6996
+ slice?: {} | undefined;
6997
+ some?: {} | undefined;
6998
+ sort?: {} | undefined;
6999
+ subarray?: {} | undefined;
7000
+ toLocaleString?: {} | undefined;
7001
+ toString?: {} | undefined;
7002
+ valueOf?: {} | undefined;
7003
+ entries?: {} | undefined;
7004
+ keys?: {} | undefined;
7005
+ values?: {} | undefined;
7006
+ includes?: {} | undefined;
7007
+ at?: {} | undefined;
7008
+ [Symbol.iterator]?: {} | undefined;
7009
+ readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
7010
+ } | undefined;
7011
+ }) => _cosmjs_proto_signing.EncodeObject;
7012
+ executeProgram: (value: {
7013
+ sender?: string | undefined;
7014
+ programId?: {
7015
+ [x: number]: number | undefined;
7016
+ readonly BYTES_PER_ELEMENT?: number | undefined;
7017
+ readonly buffer?: ({
7018
+ readonly byteLength?: number | undefined;
7019
+ slice?: {} | undefined;
7020
+ readonly [Symbol.toStringTag]?: "ArrayBuffer" | undefined;
7021
+ } | {
7022
+ readonly byteLength?: number | undefined;
7023
+ slice?: {} | undefined;
7024
+ readonly [Symbol.toStringTag]?: "SharedArrayBuffer" | undefined;
7025
+ }) | undefined;
7026
+ readonly byteLength?: number | undefined;
7027
+ readonly byteOffset?: number | undefined;
7028
+ copyWithin?: {} | undefined;
7029
+ every?: {} | undefined;
7030
+ fill?: {} | undefined;
7031
+ filter?: {} | undefined;
7032
+ find?: {} | undefined;
7033
+ findIndex?: {} | undefined;
7034
+ forEach?: {} | undefined;
7035
+ indexOf?: {} | undefined;
7036
+ join?: {} | undefined;
7037
+ lastIndexOf?: {} | undefined;
7038
+ readonly length?: number | undefined;
7039
+ map?: {} | undefined;
7040
+ reduce?: {} | undefined;
7041
+ reduceRight?: {} | undefined;
7042
+ reverse?: {} | undefined;
7043
+ set?: {} | undefined;
7044
+ slice?: {} | undefined;
7045
+ some?: {} | undefined;
7046
+ sort?: {} | undefined;
7047
+ subarray?: {} | undefined;
7048
+ toLocaleString?: {} | undefined;
7049
+ toString?: {} | undefined;
7050
+ valueOf?: {} | undefined;
7051
+ entries?: {} | undefined;
7052
+ keys?: {} | undefined;
7053
+ values?: {} | undefined;
7054
+ includes?: {} | undefined;
7055
+ at?: {} | undefined;
7056
+ [Symbol.iterator]?: {} | undefined;
7057
+ readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
7058
+ } | undefined;
7059
+ accounts?: ({
7060
+ address?: {
7061
+ [x: number]: number | undefined;
7062
+ readonly BYTES_PER_ELEMENT?: number | undefined;
7063
+ readonly buffer?: ({
7064
+ readonly byteLength?: number | undefined;
7065
+ slice?: {} | undefined;
7066
+ readonly [Symbol.toStringTag]?: "ArrayBuffer" | undefined;
7067
+ } | {
7068
+ readonly byteLength?: number | undefined;
7069
+ slice?: {} | undefined;
7070
+ readonly [Symbol.toStringTag]?: "SharedArrayBuffer" | undefined;
7071
+ }) | undefined;
7072
+ readonly byteLength?: number | undefined;
7073
+ readonly byteOffset?: number | undefined;
7074
+ copyWithin?: {} | undefined;
7075
+ every?: {} | undefined;
7076
+ fill?: {} | undefined;
7077
+ filter?: {} | undefined;
7078
+ find?: {} | undefined;
7079
+ findIndex?: {} | undefined;
7080
+ forEach?: {} | undefined;
7081
+ indexOf?: {} | undefined;
7082
+ join?: {} | undefined;
7083
+ lastIndexOf?: {} | undefined;
7084
+ readonly length?: number | undefined;
7085
+ map?: {} | undefined;
7086
+ reduce?: {} | undefined;
7087
+ reduceRight?: {} | undefined;
7088
+ reverse?: {} | undefined;
7089
+ set?: {} | undefined;
7090
+ slice?: {} | undefined;
7091
+ some?: {} | undefined;
7092
+ sort?: {} | undefined;
7093
+ subarray?: {} | undefined;
7094
+ toLocaleString?: {} | undefined;
7095
+ toString?: {} | undefined;
7096
+ valueOf?: {} | undefined;
7097
+ entries?: {} | undefined;
7098
+ keys?: {} | undefined;
7099
+ values?: {} | undefined;
7100
+ includes?: {} | undefined;
6278
7101
  at?: {} | undefined;
6279
7102
  [Symbol.iterator]?: {} | undefined;
6280
7103
  readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
@@ -6327,11 +7150,316 @@ declare const msg: {
6327
7150
  [Symbol.iterator]?: {} | undefined;
6328
7151
  readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
6329
7152
  } | undefined;
6330
- auth?: SVMAuth | undefined;
6331
- }) => _cosmjs_proto_signing.EncodeObject;
6332
- registerSvmPqcKey: (value: {
6333
- sender?: string | undefined;
6334
- svmAddr?: {
7153
+ auth?: SVMAuth | undefined;
7154
+ }) => _cosmjs_proto_signing.EncodeObject;
7155
+ registerSvmPqcKey: (value: {
7156
+ sender?: string | undefined;
7157
+ svmAddr?: {
7158
+ [x: number]: number | undefined;
7159
+ readonly BYTES_PER_ELEMENT?: number | undefined;
7160
+ readonly buffer?: ({
7161
+ readonly byteLength?: number | undefined;
7162
+ slice?: {} | undefined;
7163
+ readonly [Symbol.toStringTag]?: "ArrayBuffer" | undefined;
7164
+ } | {
7165
+ readonly byteLength?: number | undefined;
7166
+ slice?: {} | undefined;
7167
+ readonly [Symbol.toStringTag]?: "SharedArrayBuffer" | undefined;
7168
+ }) | undefined;
7169
+ readonly byteLength?: number | undefined;
7170
+ readonly byteOffset?: number | undefined;
7171
+ copyWithin?: {} | undefined;
7172
+ every?: {} | undefined;
7173
+ fill?: {} | undefined;
7174
+ filter?: {} | undefined;
7175
+ find?: {} | undefined;
7176
+ findIndex?: {} | undefined;
7177
+ forEach?: {} | undefined;
7178
+ indexOf?: {} | undefined;
7179
+ join?: {} | undefined;
7180
+ lastIndexOf?: {} | undefined;
7181
+ readonly length?: number | undefined;
7182
+ map?: {} | undefined;
7183
+ reduce?: {} | undefined;
7184
+ reduceRight?: {} | undefined;
7185
+ reverse?: {} | undefined;
7186
+ set?: {} | undefined;
7187
+ slice?: {} | undefined;
7188
+ some?: {} | undefined;
7189
+ sort?: {} | undefined;
7190
+ subarray?: {} | undefined;
7191
+ toLocaleString?: {} | undefined;
7192
+ toString?: {} | undefined;
7193
+ valueOf?: {} | undefined;
7194
+ entries?: {} | undefined;
7195
+ keys?: {} | undefined;
7196
+ values?: {} | undefined;
7197
+ includes?: {} | undefined;
7198
+ at?: {} | undefined;
7199
+ [Symbol.iterator]?: {} | undefined;
7200
+ readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
7201
+ } | undefined;
7202
+ pqcPubKey?: {
7203
+ [x: number]: number | undefined;
7204
+ readonly BYTES_PER_ELEMENT?: number | undefined;
7205
+ readonly buffer?: ({
7206
+ readonly byteLength?: number | undefined;
7207
+ slice?: {} | undefined;
7208
+ readonly [Symbol.toStringTag]?: "ArrayBuffer" | undefined;
7209
+ } | {
7210
+ readonly byteLength?: number | undefined;
7211
+ slice?: {} | undefined;
7212
+ readonly [Symbol.toStringTag]?: "SharedArrayBuffer" | undefined;
7213
+ }) | undefined;
7214
+ readonly byteLength?: number | undefined;
7215
+ readonly byteOffset?: number | undefined;
7216
+ copyWithin?: {} | undefined;
7217
+ every?: {} | undefined;
7218
+ fill?: {} | undefined;
7219
+ filter?: {} | undefined;
7220
+ find?: {} | undefined;
7221
+ findIndex?: {} | undefined;
7222
+ forEach?: {} | undefined;
7223
+ indexOf?: {} | undefined;
7224
+ join?: {} | undefined;
7225
+ lastIndexOf?: {} | undefined;
7226
+ readonly length?: number | undefined;
7227
+ map?: {} | undefined;
7228
+ reduce?: {} | undefined;
7229
+ reduceRight?: {} | undefined;
7230
+ reverse?: {} | undefined;
7231
+ set?: {} | undefined;
7232
+ slice?: {} | undefined;
7233
+ some?: {} | undefined;
7234
+ sort?: {} | undefined;
7235
+ subarray?: {} | undefined;
7236
+ toLocaleString?: {} | undefined;
7237
+ toString?: {} | undefined;
7238
+ valueOf?: {} | undefined;
7239
+ entries?: {} | undefined;
7240
+ keys?: {} | undefined;
7241
+ values?: {} | undefined;
7242
+ includes?: {} | undefined;
7243
+ at?: {} | undefined;
7244
+ [Symbol.iterator]?: {} | undefined;
7245
+ readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
7246
+ } | undefined;
7247
+ }) => _cosmjs_proto_signing.EncodeObject;
7248
+ updateParams: (value: {
7249
+ authority?: string | undefined;
7250
+ params?: SVMParams | undefined;
7251
+ }) => _cosmjs_proto_signing.EncodeObject;
7252
+ };
7253
+ readonly lightnode: {
7254
+ registerLightNode: (value: {
7255
+ operator?: string | undefined;
7256
+ nodeType?: string | undefined;
7257
+ version?: string | undefined;
7258
+ capabilities?: (string | undefined)[] | undefined;
7259
+ }) => _cosmjs_proto_signing.EncodeObject;
7260
+ heartbeat: (value: {
7261
+ operator?: string | undefined;
7262
+ }) => _cosmjs_proto_signing.EncodeObject;
7263
+ deregisterLightNode: (value: {
7264
+ operator?: string | undefined;
7265
+ }) => _cosmjs_proto_signing.EncodeObject;
7266
+ claimLightNodeRewards: (value: {
7267
+ operator?: string | undefined;
7268
+ }) => _cosmjs_proto_signing.EncodeObject;
7269
+ };
7270
+ readonly license: {
7271
+ grantLicense: (value: {
7272
+ authority?: string | undefined;
7273
+ grantee?: string | undefined;
7274
+ featureId?: string | undefined;
7275
+ expiresAt?: string | undefined;
7276
+ metadata?: string | undefined;
7277
+ }) => _cosmjs_proto_signing.EncodeObject;
7278
+ revokeLicense: (value: {
7279
+ authority?: string | undefined;
7280
+ grantee?: string | undefined;
7281
+ featureId?: string | undefined;
7282
+ }) => _cosmjs_proto_signing.EncodeObject;
7283
+ suspendLicense: (value: {
7284
+ authority?: string | undefined;
7285
+ grantee?: string | undefined;
7286
+ featureId?: string | undefined;
7287
+ }) => _cosmjs_proto_signing.EncodeObject;
7288
+ resumeLicense: (value: {
7289
+ authority?: string | undefined;
7290
+ grantee?: string | undefined;
7291
+ featureId?: string | undefined;
7292
+ }) => _cosmjs_proto_signing.EncodeObject;
7293
+ };
7294
+ readonly abstractaccount: {
7295
+ createAbstractAccount: (value: {
7296
+ owner?: string | undefined;
7297
+ accountType?: string | undefined;
7298
+ }) => _cosmjs_proto_signing.EncodeObject;
7299
+ updateSpendingRules: (value: {
7300
+ owner?: string | undefined;
7301
+ accountAddress?: string | undefined;
7302
+ rules?: ({
7303
+ id?: string | undefined;
7304
+ dailyLimit?: string | undefined;
7305
+ perTxLimit?: string | undefined;
7306
+ allowedDenoms?: (string | undefined)[] | undefined;
7307
+ enabled?: boolean | undefined;
7308
+ } | undefined)[] | undefined;
7309
+ }) => _cosmjs_proto_signing.EncodeObject;
7310
+ registerAuthenticator: (value: {
7311
+ owner?: string | undefined;
7312
+ accountAddress?: string | undefined;
7313
+ scheme?: string | undefined;
7314
+ pubkey?: {
7315
+ [x: number]: number | undefined;
7316
+ readonly BYTES_PER_ELEMENT?: number | undefined;
7317
+ readonly buffer?: ({
7318
+ readonly byteLength?: number | undefined;
7319
+ slice?: {} | undefined;
7320
+ readonly [Symbol.toStringTag]?: "ArrayBuffer" | undefined;
7321
+ } | {
7322
+ readonly byteLength?: number | undefined;
7323
+ slice?: {} | undefined;
7324
+ readonly [Symbol.toStringTag]?: "SharedArrayBuffer" | undefined;
7325
+ }) | undefined;
7326
+ readonly byteLength?: number | undefined;
7327
+ readonly byteOffset?: number | undefined;
7328
+ copyWithin?: {} | undefined;
7329
+ every?: {} | undefined;
7330
+ fill?: {} | undefined;
7331
+ filter?: {} | undefined;
7332
+ find?: {} | undefined;
7333
+ findIndex?: {} | undefined;
7334
+ forEach?: {} | undefined;
7335
+ indexOf?: {} | undefined;
7336
+ join?: {} | undefined;
7337
+ lastIndexOf?: {} | undefined;
7338
+ readonly length?: number | undefined;
7339
+ map?: {} | undefined;
7340
+ reduce?: {} | undefined;
7341
+ reduceRight?: {} | undefined;
7342
+ reverse?: {} | undefined;
7343
+ set?: {} | undefined;
7344
+ slice?: {} | undefined;
7345
+ some?: {} | undefined;
7346
+ sort?: {} | undefined;
7347
+ subarray?: {} | undefined;
7348
+ toLocaleString?: {} | undefined;
7349
+ toString?: {} | undefined;
7350
+ valueOf?: {} | undefined;
7351
+ entries?: {} | undefined;
7352
+ keys?: {} | undefined;
7353
+ values?: {} | undefined;
7354
+ includes?: {} | undefined;
7355
+ at?: {} | undefined;
7356
+ [Symbol.iterator]?: {} | undefined;
7357
+ readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
7358
+ } | undefined;
7359
+ permissions?: (string | undefined)[] | undefined;
7360
+ expiryUnix?: string | undefined;
7361
+ label?: string | undefined;
7362
+ }) => _cosmjs_proto_signing.EncodeObject;
7363
+ revokeAuthenticator: (value: {
7364
+ owner?: string | undefined;
7365
+ accountAddress?: string | undefined;
7366
+ scheme?: string | undefined;
7367
+ pubkey?: {
7368
+ [x: number]: number | undefined;
7369
+ readonly BYTES_PER_ELEMENT?: number | undefined;
7370
+ readonly buffer?: ({
7371
+ readonly byteLength?: number | undefined;
7372
+ slice?: {} | undefined;
7373
+ readonly [Symbol.toStringTag]?: "ArrayBuffer" | undefined;
7374
+ } | {
7375
+ readonly byteLength?: number | undefined;
7376
+ slice?: {} | undefined;
7377
+ readonly [Symbol.toStringTag]?: "SharedArrayBuffer" | undefined;
7378
+ }) | undefined;
7379
+ readonly byteLength?: number | undefined;
7380
+ readonly byteOffset?: number | undefined;
7381
+ copyWithin?: {} | undefined;
7382
+ every?: {} | undefined;
7383
+ fill?: {} | undefined;
7384
+ filter?: {} | undefined;
7385
+ find?: {} | undefined;
7386
+ findIndex?: {} | undefined;
7387
+ forEach?: {} | undefined;
7388
+ indexOf?: {} | undefined;
7389
+ join?: {} | undefined;
7390
+ lastIndexOf?: {} | undefined;
7391
+ readonly length?: number | undefined;
7392
+ map?: {} | undefined;
7393
+ reduce?: {} | undefined;
7394
+ reduceRight?: {} | undefined;
7395
+ reverse?: {} | undefined;
7396
+ set?: {} | undefined;
7397
+ slice?: {} | undefined;
7398
+ some?: {} | undefined;
7399
+ sort?: {} | undefined;
7400
+ subarray?: {} | undefined;
7401
+ toLocaleString?: {} | undefined;
7402
+ toString?: {} | undefined;
7403
+ valueOf?: {} | undefined;
7404
+ entries?: {} | undefined;
7405
+ keys?: {} | undefined;
7406
+ values?: {} | undefined;
7407
+ includes?: {} | undefined;
7408
+ at?: {} | undefined;
7409
+ [Symbol.iterator]?: {} | undefined;
7410
+ readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
7411
+ } | undefined;
7412
+ }) => _cosmjs_proto_signing.EncodeObject;
7413
+ executeEvm: (value: {
7414
+ relayer?: string | undefined;
7415
+ account?: string | undefined;
7416
+ scheme?: string | undefined;
7417
+ pubkey?: {
7418
+ [x: number]: number | undefined;
7419
+ readonly BYTES_PER_ELEMENT?: number | undefined;
7420
+ readonly buffer?: ({
7421
+ readonly byteLength?: number | undefined;
7422
+ slice?: {} | undefined;
7423
+ readonly [Symbol.toStringTag]?: "ArrayBuffer" | undefined;
7424
+ } | {
7425
+ readonly byteLength?: number | undefined;
7426
+ slice?: {} | undefined;
7427
+ readonly [Symbol.toStringTag]?: "SharedArrayBuffer" | undefined;
7428
+ }) | undefined;
7429
+ readonly byteLength?: number | undefined;
7430
+ readonly byteOffset?: number | undefined;
7431
+ copyWithin?: {} | undefined;
7432
+ every?: {} | undefined;
7433
+ fill?: {} | undefined;
7434
+ filter?: {} | undefined;
7435
+ find?: {} | undefined;
7436
+ findIndex?: {} | undefined;
7437
+ forEach?: {} | undefined;
7438
+ indexOf?: {} | undefined;
7439
+ join?: {} | undefined;
7440
+ lastIndexOf?: {} | undefined;
7441
+ readonly length?: number | undefined;
7442
+ map?: {} | undefined;
7443
+ reduce?: {} | undefined;
7444
+ reduceRight?: {} | undefined;
7445
+ reverse?: {} | undefined;
7446
+ set?: {} | undefined;
7447
+ slice?: {} | undefined;
7448
+ some?: {} | undefined;
7449
+ sort?: {} | undefined;
7450
+ subarray?: {} | undefined;
7451
+ toLocaleString?: {} | undefined;
7452
+ toString?: {} | undefined;
7453
+ valueOf?: {} | undefined;
7454
+ entries?: {} | undefined;
7455
+ keys?: {} | undefined;
7456
+ values?: {} | undefined;
7457
+ includes?: {} | undefined;
7458
+ at?: {} | undefined;
7459
+ [Symbol.iterator]?: {} | undefined;
7460
+ readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
7461
+ } | undefined;
7462
+ signature?: {
6335
7463
  [x: number]: number | undefined;
6336
7464
  readonly BYTES_PER_ELEMENT?: number | undefined;
6337
7465
  readonly buffer?: ({
@@ -6376,7 +7504,9 @@ declare const msg: {
6376
7504
  [Symbol.iterator]?: {} | undefined;
6377
7505
  readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
6378
7506
  } | undefined;
6379
- pqcPubKey?: {
7507
+ to?: string | undefined;
7508
+ value?: string | undefined;
7509
+ data?: {
6380
7510
  [x: number]: number | undefined;
6381
7511
  readonly BYTES_PER_ELEMENT?: number | undefined;
6382
7512
  readonly buffer?: ({
@@ -6421,68 +7551,12 @@ declare const msg: {
6421
7551
  [Symbol.iterator]?: {} | undefined;
6422
7552
  readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
6423
7553
  } | undefined;
7554
+ gasLimit?: string | undefined;
7555
+ nonce?: string | undefined;
6424
7556
  }) => _cosmjs_proto_signing.EncodeObject;
6425
- };
6426
- readonly lightnode: {
6427
- registerLightNode: (value: {
6428
- operator?: string | undefined;
6429
- nodeType?: string | undefined;
6430
- version?: string | undefined;
6431
- capabilities?: (string | undefined)[] | undefined;
6432
- }) => _cosmjs_proto_signing.EncodeObject;
6433
- heartbeat: (value: {
6434
- operator?: string | undefined;
6435
- }) => _cosmjs_proto_signing.EncodeObject;
6436
- deregisterLightNode: (value: {
6437
- operator?: string | undefined;
6438
- }) => _cosmjs_proto_signing.EncodeObject;
6439
- claimLightNodeRewards: (value: {
6440
- operator?: string | undefined;
6441
- }) => _cosmjs_proto_signing.EncodeObject;
6442
- };
6443
- readonly license: {
6444
- grantLicense: (value: {
6445
- authority?: string | undefined;
6446
- grantee?: string | undefined;
6447
- featureId?: string | undefined;
6448
- expiresAt?: string | undefined;
6449
- metadata?: string | undefined;
6450
- }) => _cosmjs_proto_signing.EncodeObject;
6451
- revokeLicense: (value: {
6452
- authority?: string | undefined;
6453
- grantee?: string | undefined;
6454
- featureId?: string | undefined;
6455
- }) => _cosmjs_proto_signing.EncodeObject;
6456
- suspendLicense: (value: {
6457
- authority?: string | undefined;
6458
- grantee?: string | undefined;
6459
- featureId?: string | undefined;
6460
- }) => _cosmjs_proto_signing.EncodeObject;
6461
- resumeLicense: (value: {
6462
- authority?: string | undefined;
6463
- grantee?: string | undefined;
6464
- featureId?: string | undefined;
6465
- }) => _cosmjs_proto_signing.EncodeObject;
6466
- };
6467
- readonly abstractaccount: {
6468
- createAbstractAccount: (value: {
6469
- owner?: string | undefined;
6470
- accountType?: string | undefined;
6471
- }) => _cosmjs_proto_signing.EncodeObject;
6472
- updateSpendingRules: (value: {
6473
- owner?: string | undefined;
6474
- accountAddress?: string | undefined;
6475
- rules?: ({
6476
- id?: string | undefined;
6477
- dailyLimit?: string | undefined;
6478
- perTxLimit?: string | undefined;
6479
- allowedDenoms?: (string | undefined)[] | undefined;
6480
- enabled?: boolean | undefined;
6481
- } | undefined)[] | undefined;
6482
- }) => _cosmjs_proto_signing.EncodeObject;
6483
- registerAuthenticator: (value: {
6484
- owner?: string | undefined;
6485
- accountAddress?: string | undefined;
7557
+ executeCosmos: (value: {
7558
+ relayer?: string | undefined;
7559
+ account?: string | undefined;
6486
7560
  scheme?: string | undefined;
6487
7561
  pubkey?: {
6488
7562
  [x: number]: number | undefined;
@@ -6529,15 +7603,7 @@ declare const msg: {
6529
7603
  [Symbol.iterator]?: {} | undefined;
6530
7604
  readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
6531
7605
  } | undefined;
6532
- permissions?: (string | undefined)[] | undefined;
6533
- expiryUnix?: string | undefined;
6534
- label?: string | undefined;
6535
- }) => _cosmjs_proto_signing.EncodeObject;
6536
- revokeAuthenticator: (value: {
6537
- owner?: string | undefined;
6538
- accountAddress?: string | undefined;
6539
- scheme?: string | undefined;
6540
- pubkey?: {
7606
+ signature?: {
6541
7607
  [x: number]: number | undefined;
6542
7608
  readonly BYTES_PER_ELEMENT?: number | undefined;
6543
7609
  readonly buffer?: ({
@@ -6582,6 +7648,12 @@ declare const msg: {
6582
7648
  [Symbol.iterator]?: {} | undefined;
6583
7649
  readonly [Symbol.toStringTag]?: "Uint8Array" | undefined;
6584
7650
  } | undefined;
7651
+ to?: string | undefined;
7652
+ amount?: ({
7653
+ denom?: string | undefined;
7654
+ amount?: string | undefined;
7655
+ } | undefined)[] | undefined;
7656
+ nonce?: string | undefined;
6585
7657
  }) => _cosmjs_proto_signing.EncodeObject;
6586
7658
  };
6587
7659
  readonly crossvm: {
@@ -6639,6 +7711,7 @@ declare const msg: {
6639
7711
  denom?: string | undefined;
6640
7712
  amount?: string | undefined;
6641
7713
  } | undefined)[] | undefined;
7714
+ async?: boolean | undefined;
6642
7715
  }) => _cosmjs_proto_signing.EncodeObject;
6643
7716
  processQueue: (value: {
6644
7717
  authority?: string | undefined;
@@ -6672,7 +7745,7 @@ declare const protobufPackage$d = "qorechain.pqc.v1";
6672
7745
  * PQCHybridSignature is a transaction extension option carried in
6673
7746
  * TxBody.extension_options. It pairs a post-quantum (Dilithium-5) signature with
6674
7747
  * the account's classical secp256k1 signature so every transaction can be
6675
- * quantum-safe while remaining compatible with the standard Native auth
7748
+ * quantum-safe while remaining compatible with the standard Cosmos SDK auth
6676
7749
  * path. It is registered as a cosmos.tx.v1beta1.TxExtensionOptionI.
6677
7750
  */
6678
7751
  interface PQCHybridSignature {
@@ -6745,6 +7818,30 @@ interface QueryAccountsResponse {
6745
7818
  accounts: AccountView[];
6746
7819
  }
6747
7820
  declare const QueryAccountsResponse: MessageFns$c<QueryAccountsResponse>;
7821
+ interface QueryPermissionSchemaRequest {
7822
+ }
7823
+ declare const QueryPermissionSchemaRequest: MessageFns$c<QueryPermissionSchemaRequest>;
7824
+ interface QueryPermissionSchemaResponse {
7825
+ /**
7826
+ * schema_version bumps whenever the taxonomy or the mapping changes; clients
7827
+ * compare it to their embedded copy to detect drift.
7828
+ */
7829
+ schemaVersion: string;
7830
+ /** permissions is every valid permission string (e.g. send, evm, svm, all). */
7831
+ permissions: string[];
7832
+ /** msg_permissions maps a message typeURL to the permission it requires. */
7833
+ msgPermissions: {
7834
+ [key: string]: string;
7835
+ };
7836
+ /** key_management_msgs are typeURLs that are NEVER delegable to a linked key. */
7837
+ keyManagementMsgs: string[];
7838
+ }
7839
+ declare const QueryPermissionSchemaResponse: MessageFns$c<QueryPermissionSchemaResponse>;
7840
+ interface QueryPermissionSchemaResponse_MsgPermissionsEntry {
7841
+ key: string;
7842
+ value: string;
7843
+ }
7844
+ declare const QueryPermissionSchemaResponse_MsgPermissionsEntry: MessageFns$c<QueryPermissionSchemaResponse_MsgPermissionsEntry>;
6748
7845
  /** Query defines the gRPC query service for the abstractaccount module. */
6749
7846
  type QueryDefinition$c = typeof QueryDefinition$c;
6750
7847
  declare const QueryDefinition$c: {
@@ -6758,7 +7855,11 @@ declare const QueryDefinition$c: {
6758
7855
  readonly requestStream: false;
6759
7856
  readonly responseType: typeof QueryConfigResponse$2;
6760
7857
  readonly responseStream: false;
6761
- readonly options: {};
7858
+ readonly options: {
7859
+ readonly _unknownFields: {
7860
+ readonly 578365826: readonly [Uint8Array<ArrayBufferLike>];
7861
+ };
7862
+ };
6762
7863
  };
6763
7864
  /** Account returns a single abstract account by address. */
6764
7865
  readonly account: {
@@ -6767,7 +7868,11 @@ declare const QueryDefinition$c: {
6767
7868
  readonly requestStream: false;
6768
7869
  readonly responseType: typeof QueryAccountResponse$2;
6769
7870
  readonly responseStream: false;
6770
- readonly options: {};
7871
+ readonly options: {
7872
+ readonly _unknownFields: {
7873
+ readonly 578365826: readonly [Uint8Array<ArrayBufferLike>];
7874
+ };
7875
+ };
6771
7876
  };
6772
7877
  /** Accounts lists all abstract accounts. */
6773
7878
  readonly accounts: {
@@ -6776,7 +7881,28 @@ declare const QueryDefinition$c: {
6776
7881
  readonly requestStream: false;
6777
7882
  readonly responseType: typeof QueryAccountsResponse;
6778
7883
  readonly responseStream: false;
6779
- readonly options: {};
7884
+ readonly options: {
7885
+ readonly _unknownFields: {
7886
+ readonly 578365826: readonly [Uint8Array<ArrayBufferLike>];
7887
+ };
7888
+ };
7889
+ };
7890
+ /**
7891
+ * PermissionSchema returns the canonical authenticator permission taxonomy so
7892
+ * clients (QoreX/dashboard/relayer) validate scopes without hardcoding strings
7893
+ * and detect drift via schema_version (v3.1.85).
7894
+ */
7895
+ readonly permissionSchema: {
7896
+ readonly name: "PermissionSchema";
7897
+ readonly requestType: typeof QueryPermissionSchemaRequest;
7898
+ readonly requestStream: false;
7899
+ readonly responseType: typeof QueryPermissionSchemaResponse;
7900
+ readonly responseStream: false;
7901
+ readonly options: {
7902
+ readonly _unknownFields: {
7903
+ readonly 578365826: readonly [Uint8Array<ArrayBufferLike>];
7904
+ };
7905
+ };
6780
7906
  };
6781
7907
  };
6782
7908
  };
@@ -6797,8 +7923,11 @@ declare const query$c_AccountView: typeof AccountView;
6797
7923
  declare const query$c_ConfigView: typeof ConfigView;
6798
7924
  declare const query$c_QueryAccountsRequest: typeof QueryAccountsRequest;
6799
7925
  declare const query$c_QueryAccountsResponse: typeof QueryAccountsResponse;
7926
+ declare const query$c_QueryPermissionSchemaRequest: typeof QueryPermissionSchemaRequest;
7927
+ declare const query$c_QueryPermissionSchemaResponse: typeof QueryPermissionSchemaResponse;
7928
+ declare const query$c_QueryPermissionSchemaResponse_MsgPermissionsEntry: typeof QueryPermissionSchemaResponse_MsgPermissionsEntry;
6800
7929
  declare namespace query$c {
6801
- export { query$c_AccountView as AccountView, query$c_ConfigView as ConfigView, type DeepPartial$c as DeepPartial, type MessageFns$c as MessageFns, QueryAccountRequest$2 as QueryAccountRequest, QueryAccountResponse$2 as QueryAccountResponse, query$c_QueryAccountsRequest as QueryAccountsRequest, query$c_QueryAccountsResponse as QueryAccountsResponse, QueryConfigRequest$2 as QueryConfigRequest, QueryConfigResponse$2 as QueryConfigResponse, QueryDefinition$c as QueryDefinition, protobufPackage$c as protobufPackage };
7930
+ export { query$c_AccountView as AccountView, query$c_ConfigView as ConfigView, type DeepPartial$c as DeepPartial, type MessageFns$c as MessageFns, QueryAccountRequest$2 as QueryAccountRequest, QueryAccountResponse$2 as QueryAccountResponse, query$c_QueryAccountsRequest as QueryAccountsRequest, query$c_QueryAccountsResponse as QueryAccountsResponse, QueryConfigRequest$2 as QueryConfigRequest, QueryConfigResponse$2 as QueryConfigResponse, QueryDefinition$c as QueryDefinition, query$c_QueryPermissionSchemaRequest as QueryPermissionSchemaRequest, query$c_QueryPermissionSchemaResponse as QueryPermissionSchemaResponse, query$c_QueryPermissionSchemaResponse_MsgPermissionsEntry as QueryPermissionSchemaResponse_MsgPermissionsEntry, protobufPackage$c as protobufPackage };
6802
7931
  }
6803
7932
 
6804
7933
  declare const protobufPackage$b = "qorechain.amm.v1";
@@ -8457,6 +9586,246 @@ declare namespace index {
8457
9586
  export { tx$2 as abstractaccount, query$c as abstractaccountQuery, tx$8 as amm, query$b as ammQuery, tx$9 as bridge, query$a as bridgeQuery, tx$1 as crossvm, query$9 as crossvmQuery, tx$3 as license, query$8 as licenseQuery, tx$4 as lightnode, query$7 as lightnodeQuery, tx$6 as multilayer, query$6 as multilayerQuery, tx$5 as pqc, hybrid as pqcHybrid, query$5 as pqcQuery, query$4 as qcaQuery, tx$7 as rdk, query$3 as rdkQuery, query$2 as reputationQuery, tx as rlconsensus, query$1 as rlconsensusQuery, tx$a as svm, query as svmQuery };
8458
9587
  }
8459
9588
 
9589
+ /**
9590
+ * Wallet DX for the v3.1.85 authenticator lanes.
9591
+ *
9592
+ * These builders mirror the reference wallet-adapter: they take a linked
9593
+ * external wallet (a Phantom ed25519 key, or a MetaMask / EIP-1193 secp256k1
9594
+ * key), rebuild the domain-separated authenticator sign-bytes (see
9595
+ * {@link ../tx/authenticator}), have the wallet sign the 32-byte digest, and
9596
+ * return a relayer-ready `{ typeUrl, value }` message for the EVM or Native
9597
+ * lane. A relayer then submits and pays fees; the authenticator's signature IS
9598
+ * the authorization — the external key never produces an ML-DSA co-signature.
9599
+ *
9600
+ * Signature schemes:
9601
+ * - `ed25519` (Phantom): the chain verifies `ed25519.Verify(pubkey, digest,
9602
+ * sig)`, so a Phantom `signMessage(digest)` matches directly.
9603
+ * - `secp256k1` (MetaMask): the key is linked by its 20-byte ETH ADDRESS; the
9604
+ * wallet produces a 65-byte `personal_sign` (EIP-191) signature over the
9605
+ * same digest.
9606
+ *
9607
+ * Also included: the low-level message composers, and mnemonic-based PQC key
9608
+ * rotation (legacy→canonical migration) with both keys dual-signing the
9609
+ * rotation bytes.
9610
+ */
9611
+
9612
+ /** Fields for {@link executeEvmMsg}. */
9613
+ interface ExecuteEvmMsgInput {
9614
+ relayer: string;
9615
+ account: string;
9616
+ scheme: "ed25519" | "secp256k1";
9617
+ pubkey: Uint8Array;
9618
+ signature: Uint8Array;
9619
+ to?: string;
9620
+ value?: string;
9621
+ data?: Uint8Array;
9622
+ gasLimit: number | bigint;
9623
+ nonce: number | bigint;
9624
+ }
9625
+ /**
9626
+ * Build a `MsgExecuteEVM` (`{ typeUrl, value }`) — the relayer broadcasts this
9627
+ * and is the fee payer. `to` is a 0x-hex address, `value` a decimal wei string.
9628
+ */
9629
+ declare function executeEvmMsg(input: ExecuteEvmMsgInput): EncodeObject;
9630
+ /** Fields for {@link executeCosmosMsg}. */
9631
+ interface ExecuteCosmosMsgInput {
9632
+ relayer: string;
9633
+ account: string;
9634
+ scheme: "ed25519" | "secp256k1";
9635
+ pubkey: Uint8Array;
9636
+ signature: Uint8Array;
9637
+ to: string;
9638
+ /** Single-coin amount string, e.g. `100uqor`. */
9639
+ amount: string;
9640
+ nonce: number | bigint;
9641
+ }
9642
+ /**
9643
+ * Build a `MsgExecuteCosmos` (`{ typeUrl, value }`) — the relayer broadcasts
9644
+ * this. `amount` is a single-coin string like `100uqor`.
9645
+ */
9646
+ declare function executeCosmosMsg(input: ExecuteCosmosMsgInput): EncodeObject;
9647
+ /** Fields for {@link revokeAuthenticatorMsg}. */
9648
+ interface RevokeAuthenticatorMsgInput {
9649
+ owner: string;
9650
+ account?: string;
9651
+ scheme: "ed25519" | "secp256k1";
9652
+ pubkey: Uint8Array;
9653
+ }
9654
+ /**
9655
+ * Build a `MsgRevokeAuthenticator` (`{ typeUrl, value }`) — owner-signed;
9656
+ * instantly disables a linked key. `account` defaults to `owner`.
9657
+ */
9658
+ declare function revokeAuthenticatorMsg(input: RevokeAuthenticatorMsgInput): EncodeObject;
9659
+ /** Fields for {@link registerEthAuthenticatorMsg}. */
9660
+ interface RegisterEthAuthenticatorMsgInput {
9661
+ owner: string;
9662
+ account?: string;
9663
+ /** 0x-hex 20-byte ETH address that becomes the authenticator pubkey. */
9664
+ ethAddress: string;
9665
+ permissions?: string[];
9666
+ expiryUnix: number | bigint;
9667
+ label?: string;
9668
+ }
9669
+ /**
9670
+ * Build a `MsgRegisterAuthenticator` (`{ typeUrl, value }`) that links a
9671
+ * MetaMask / EVM key (by its 0x address, scheme `secp256k1`) to the owner's
9672
+ * account. Owner-signed. `account` defaults to `owner`.
9673
+ */
9674
+ declare function registerEthAuthenticatorMsg(input: RegisterEthAuthenticatorMsgInput): EncodeObject;
9675
+ /** Fields for {@link rotatePqcKeyMsg}. */
9676
+ interface RotatePqcKeyMsgInput {
9677
+ sender: string;
9678
+ oldPublicKey: Uint8Array;
9679
+ newPublicKey: Uint8Array;
9680
+ oldSignature: Uint8Array;
9681
+ newSignature: Uint8Array;
9682
+ }
9683
+ /**
9684
+ * Build a `MsgRotatePQCKey` (`{ typeUrl, value }`) — sender-signed (hybrid, with
9685
+ * the OLD key); dual-signed payload.
9686
+ */
9687
+ declare function rotatePqcKeyMsg(input: RotatePqcKeyMsgInput): EncodeObject;
9688
+ /**
9689
+ * The minimal Phantom-style ed25519 wallet shape the builders need: a public
9690
+ * key (as `.toBytes()` or raw bytes) and `signMessage` returning `{ signature }`
9691
+ * or raw bytes.
9692
+ */
9693
+ interface AuthenticatorWallet {
9694
+ publicKey: {
9695
+ toBytes(): Uint8Array;
9696
+ } | Uint8Array;
9697
+ signMessage(message: Uint8Array): Promise<{
9698
+ signature: Uint8Array;
9699
+ } | Uint8Array>;
9700
+ }
9701
+ /** Fields for {@link buildPhantomExecuteEvm}. */
9702
+ interface BuildPhantomExecuteEvmOptions {
9703
+ wallet: AuthenticatorWallet;
9704
+ relayer: string;
9705
+ chainId: string;
9706
+ account: string;
9707
+ to?: string;
9708
+ value?: string;
9709
+ data?: Uint8Array;
9710
+ gasLimit?: number | bigint;
9711
+ /** The account's CURRENT EVM nonce (relayer ≠ owner → do NOT +1). */
9712
+ nonce: number | bigint;
9713
+ }
9714
+ /**
9715
+ * Sign the EVM auth digest with a Phantom-style ed25519 wallet and return a
9716
+ * `MsgExecuteEVM` ready for the relayer to broadcast.
9717
+ */
9718
+ declare function buildPhantomExecuteEvm(opts: BuildPhantomExecuteEvmOptions): Promise<EncodeObject>;
9719
+ /** Fields for {@link buildPhantomExecuteCosmos}. */
9720
+ interface BuildPhantomExecuteCosmosOptions {
9721
+ wallet: AuthenticatorWallet;
9722
+ relayer: string;
9723
+ chainId: string;
9724
+ account: string;
9725
+ to: string;
9726
+ /** Single-coin amount string, e.g. `100uqor`. */
9727
+ amount: string;
9728
+ /** The per-authenticator sequence for `(account, pubkey)`. */
9729
+ nonce: number | bigint;
9730
+ }
9731
+ /**
9732
+ * Sign the Native (Cosmos) auth digest with a Phantom-style ed25519 wallet and
9733
+ * return a `MsgExecuteCosmos` ready for the relayer to broadcast.
9734
+ */
9735
+ declare function buildPhantomExecuteCosmos(opts: BuildPhantomExecuteCosmosOptions): Promise<EncodeObject>;
9736
+ /** The minimal EIP-1193 provider shape the MetaMask builders need. */
9737
+ interface Eip1193Provider {
9738
+ request(args: {
9739
+ method: string;
9740
+ params: unknown[];
9741
+ }): Promise<string>;
9742
+ }
9743
+ /** Fields for {@link buildMetaMaskExecuteEvm}. */
9744
+ interface BuildMetaMaskExecuteEvmOptions {
9745
+ provider: Eip1193Provider;
9746
+ /** 0x-hex 20-byte ETH address (the authenticator pubkey). */
9747
+ address: string;
9748
+ relayer: string;
9749
+ chainId: string;
9750
+ account: string;
9751
+ to?: string;
9752
+ value?: string;
9753
+ data?: Uint8Array;
9754
+ gasLimit?: number | bigint;
9755
+ /** The account's CURRENT EVM nonce (relayer ≠ owner → do NOT +1). */
9756
+ nonce: number | bigint;
9757
+ }
9758
+ /**
9759
+ * Sign the EVM auth digest via MetaMask (EIP-191 `personal_sign`) and return a
9760
+ * `MsgExecuteEVM` ready for the relayer. The key is linked by its 20-byte ETH
9761
+ * address (scheme `secp256k1`).
9762
+ */
9763
+ declare function buildMetaMaskExecuteEvm(opts: BuildMetaMaskExecuteEvmOptions): Promise<EncodeObject>;
9764
+ /** Fields for {@link buildMetaMaskExecuteCosmos}. */
9765
+ interface BuildMetaMaskExecuteCosmosOptions {
9766
+ provider: Eip1193Provider;
9767
+ /** 0x-hex 20-byte ETH address (the authenticator pubkey). */
9768
+ address: string;
9769
+ relayer: string;
9770
+ chainId: string;
9771
+ account: string;
9772
+ to: string;
9773
+ /** Single-coin amount string, e.g. `100uqor`. */
9774
+ amount: string;
9775
+ /** The per-authenticator sequence for `(account, address)`. */
9776
+ nonce: number | bigint;
9777
+ }
9778
+ /**
9779
+ * Sign the Native (Cosmos) auth digest via MetaMask (EIP-191 `personal_sign`)
9780
+ * and return a `MsgExecuteCosmos` ready for the relayer.
9781
+ */
9782
+ declare function buildMetaMaskExecuteCosmos(opts: BuildMetaMaskExecuteCosmosOptions): Promise<EncodeObject>;
9783
+ /**
9784
+ * The CANONICAL address-bound PQC derivation (SDK / wallet-adapter):
9785
+ * `shake256("qorechain:pqc:v1|" + account + "|" + mnemonic, 32)` → ML-DSA-87
9786
+ * keygen. This matches {@link ../accounts/unified.deriveUnifiedAccount}.
9787
+ */
9788
+ declare const CANONICAL_DERIVATION = "adapter";
9789
+ /**
9790
+ * The LEGACY chain-bridge / faucet-api PQC derivation:
9791
+ * `shake256(utf8(mnemonic), 32)` → ML-DSA-87 keygen. Not address-bound.
9792
+ */
9793
+ declare const LEGACY_DERIVATION = "bridge";
9794
+ /** Derive the LEGACY (chain-bridge) ML-DSA-87 keypair for a mnemonic. */
9795
+ declare function derivePqcLegacy(mnemonic: string): PqcKeypair;
9796
+ /** Options for {@link rotatePqcKeyMsgFromMnemonic}. */
9797
+ interface RotatePqcKeyMsgFromMnemonicOptions {
9798
+ account: string;
9799
+ mnemonic: string;
9800
+ chainId: string;
9801
+ /** PQC algorithm id (ML-DSA-87 = 1). */
9802
+ algorithmId?: number;
9803
+ /** Source derivation (defaults to the legacy chain-bridge derivation). */
9804
+ oldDerivation?: string;
9805
+ /** Target derivation (defaults to the canonical address-bound derivation). */
9806
+ newDerivation?: string;
9807
+ }
9808
+ /** Result of {@link rotatePqcKeyMsgFromMnemonic}. */
9809
+ interface RotatePqcKeyMsgFromMnemonicResult {
9810
+ /** The `{ typeUrl, value }` `MsgRotatePQCKey` to broadcast. */
9811
+ msg: EncodeObject;
9812
+ /** The OLD keypair (still the registered key until the rotation lands). */
9813
+ oldKeypair: PqcKeypair;
9814
+ /** The NEW keypair (becomes the registered key after rotation). */
9815
+ newKeypair: PqcKeypair;
9816
+ }
9817
+ /**
9818
+ * Build a `MsgRotatePQCKey` that rotates an account's ML-DSA-87 key (SAME
9819
+ * algorithm) from one derivation to another — canonically migrating a LEGACY
9820
+ * chain-bridge key (`shake256(mnemonic)`) to the canonical address-bound key
9821
+ * (`shake256("qorechain:pqc:v1|addr|mnemonic")`). Both keys dual-sign the
9822
+ * domain-separated rotation bytes.
9823
+ *
9824
+ * The returned message must be broadcast BY the account, cosigned (hybrid) with
9825
+ * the OLD key (it is still the registered key until the rotation lands).
9826
+ */
9827
+ declare function rotatePqcKeyMsgFromMnemonic(opts: RotatePqcKeyMsgFromMnemonicOptions): RotatePqcKeyMsgFromMnemonicResult;
9828
+
8460
9829
  /**
8461
9830
  * Native browser-wallet integration for QoreChain (Keplr and Leap).
8462
9831
  *
@@ -8660,6 +10029,13 @@ interface AbstractAccountQueryClient {
8660
10029
  account(req: QueryAccountRequest$2): Promise<QueryAccountResponse$2>;
8661
10030
  /** All abstract accounts. */
8662
10031
  accounts(req?: QueryAccountsRequest): Promise<QueryAccountsResponse>;
10032
+ /**
10033
+ * The canonical authenticator permission taxonomy (v3.1.85): the valid
10034
+ * permission strings, the message-typeURL→permission mapping, the
10035
+ * never-delegable key-management typeURLs, and a `schema_version` clients
10036
+ * compare against their embedded copy to detect drift.
10037
+ */
10038
+ permissionSchema(req?: QueryPermissionSchemaRequest): Promise<QueryPermissionSchemaResponse>;
8663
10039
  }
8664
10040
  /** Multilayer (sidechain / paychain) module query client. */
8665
10041
  interface MultilayerQueryClient {
@@ -9116,6 +10492,12 @@ declare function createRollupClient(tx: TxClient, opts?: CreateRollupClientOptio
9116
10492
  * under a single signature — e.g. an EVM call, an SVM call, and a CosmWasm call
9117
10493
  * that all land together or not at all.
9118
10494
  *
10495
+ * A call executes inside the transaction and returns the callee's answer: the
10496
+ * result carries `executed`, `data` (the return value) and `gasUsed`, decoded
10497
+ * from `MsgCrossVMCallResponse`. Pass `async: true` to queue the call for a
10498
+ * later `ProcessQueue` dispatch instead, in which case nothing has run yet and
10499
+ * only the message id is meaningful.
10500
+ *
9119
10501
  * Per-VM payload encoding (pick exactly one shape per call):
9120
10502
  * - `{ payload }` — raw bytes / hex, passed through unchanged.
9121
10503
  * - `{ evm: { abi, functionName, args } }` — ABI-encoded with viem's
@@ -9176,7 +10558,15 @@ interface CrossVMWriteOptions {
9176
10558
  }
9177
10559
  /** Common cross-VM call fields (without the payload or write options). */
9178
10560
  interface CrossVMCallBase {
9179
- /** The VM the call originates from. Defaults to `"evm"`. */
10561
+ /**
10562
+ * The VM the call claims to originate from.
10563
+ *
10564
+ * IGNORED BY THE CHAIN (v3.1.97). The chain derives the origin lane from the
10565
+ * execution context rather than trusting the caller's self-description, so
10566
+ * setting this changes nothing about how the call is handled. The field is
10567
+ * retained — and still sent, defaulting to `"evm"` — purely for wire
10568
+ * compatibility, so older nodes and clients keep accepting the message.
10569
+ */
9180
10570
  sourceVm?: VMType;
9181
10571
  /** The VM the call targets. */
9182
10572
  targetVm: VMType;
@@ -9184,13 +10574,42 @@ interface CrossVMCallBase {
9184
10574
  targetContract: string;
9185
10575
  /** Optional funds (coins) to forward with the call. */
9186
10576
  funds?: Coin$1[];
10577
+ /**
10578
+ * Queue the call for a later `ProcessQueue` dispatch instead of executing it
10579
+ * inside this transaction.
10580
+ *
10581
+ * Defaults to `false`, matching the chain's default: execute now and return
10582
+ * the callee's answer (see {@link CrossVMCallResult.data}). With `async: true`
10583
+ * the call is only enqueued, so the response carries `executed: false` and no
10584
+ * `data` — use it when you do not need the result in this transaction.
10585
+ */
10586
+ async?: boolean;
9187
10587
  }
9188
10588
  /** Options for a single cross-VM call (base + payload). */
9189
10589
  type CrossVMCallOptions = CrossVMCallBase & PayloadInput;
9190
10590
  /** Options for {@link CrossVMClient.call} (adds write-path options). */
9191
10591
  type CallOptions = CrossVMCallOptions & CrossVMWriteOptions;
10592
+ /**
10593
+ * The decoded `MsgCrossVMCallResponse` fields for one cross-VM call.
10594
+ *
10595
+ * Populated from the tx's per-message responses when the node returns them
10596
+ * (`commit` broadcasts). When they are absent — a `sync`/`async` broadcast, or
10597
+ * an older node — `executed` is `false`, `data` is empty and `gasUsed` is `0n`;
10598
+ * read the result with {@link CrossVMClient.getMessage} instead.
10599
+ */
10600
+ interface CrossVMCallOutcome {
10601
+ /**
10602
+ * Whether the callee actually ran inside this transaction. `false` for a
10603
+ * queued (`async: true`) call, whose result is not known yet.
10604
+ */
10605
+ executed: boolean;
10606
+ /** The callee's return value. Empty when the call was queued. */
10607
+ data: Uint8Array;
10608
+ /** Gas consumed by the callee. `0n` when the call was queued. */
10609
+ gasUsed: bigint;
10610
+ }
9192
10611
  /** Result of a single {@link CrossVMClient.call}. */
9193
- interface CrossVMCallResult {
10612
+ interface CrossVMCallResult extends CrossVMCallOutcome {
9194
10613
  /** The cross-VM message id assigned by the chain (parsed from tx events). */
9195
10614
  messageId: string;
9196
10615
  /** The raw broadcast result. */
@@ -9200,6 +10619,13 @@ interface CrossVMCallResult {
9200
10619
  interface CrossVMAtomicResult {
9201
10620
  /** The cross-VM message ids assigned by the chain (best-effort, from events). */
9202
10621
  messageIds: string[];
10622
+ /**
10623
+ * The decoded per-call outcomes, in the order the calls were passed.
10624
+ *
10625
+ * Empty when the node returned no per-message responses (see
10626
+ * {@link CrossVMCallOutcome}).
10627
+ */
10628
+ outcomes: CrossVMCallOutcome[];
9203
10629
  /** The raw broadcast result for the single packing transaction. */
9204
10630
  result: BroadcastResult;
9205
10631
  }
@@ -9243,7 +10669,9 @@ interface CreateCrossVMClientOptions {
9243
10669
  * Create a {@link CrossVMClient} bound to a connected {@link TxClient}.
9244
10670
  *
9245
10671
  * The `TxClient`'s sender address is used as the message `sender`, so the caller
9246
- * never repeats their address. `sourceVm` defaults to `"evm"`.
10672
+ * never repeats their address. `sourceVm` still defaults to `"evm"` on the wire
10673
+ * but is ignored by the chain (see {@link CrossVMCallBase.sourceVm}); `async`
10674
+ * defaults to `false`, i.e. execute now and return the callee's answer.
9247
10675
  *
9248
10676
  * @param tx - A connected signing client (from `client.connectTx(signer)`).
9249
10677
  * @param opts - Optional typed query client and/or `qor_` client for reads.
@@ -9468,6 +10896,6 @@ declare function migrateToHybrid(tx: TxClient, opts: MigrateToHybridOptions): Pr
9468
10896
  * callers who want to compose them directly. Internal helpers are not exported.
9469
10897
  */
9470
10898
  /** SDK version. */
9471
- declare const VERSION = "0.6.1";
10899
+ declare const VERSION = "0.8.0";
9472
10900
 
9473
- export { type AbstractAccountQueryClient, type Account, type AccountSequence, AlgorithmDilithium5, type AlgorithmID, AlgorithmMLKEM1024, AlgorithmUnspecified, type AllBalancesResponse, type AmmQueryClient, type AnchorStateOptions, type AttachHybridOptions, type AutoFeeOptions, type BalanceResponse, type BankSendOptions, type Bech32Config, type Bech32Prefixes, type BridgeQueryClient, type BroadcastMode, type BroadcastResult, type BuildHybridTxOptions, type BuiltHybridTx, type CallOptions, type ChallengeBatchOptions, type ClientFees, type CoinInfo, type ConnectPhantomUnifiedOptions, type ConnectTxOptions, type ContractMsg, type CosmWasmPayload, type CosmWasmReadClient, type CosmWasmSigningClient, type CosmosWalletConnection, type CosmosWalletName, type CreateClientOptions, type CreateCrossVMClientOptions, type CreateMultilayerClientOptions, type CreateRollupClientOptions, type CreateRollupOptions, type CrossVMAtomicResult, type CrossVMCallBase, type CrossVMCallOptions, type CrossVMCallResult, type CrossVMClient, type CrossVMWriteOptions, type CrossVmMessage, type CrossVmMessageResponse, type CrossVmParamsResponse, type CrossVmQueryClient, DEFAULT_GAS_MULTIPLIER, DEFAULT_GAS_PRICE, type DecodedTxError, type DenomOptions, type DerivationOptions, ETHSECP256K1_PUBKEY_TYPE, type Ed25519Account, type EnsurePqcRegisteredOptions, type EnsurePqcRegisteredResult, type EstimateFeeOptions, type EthBroadcaster, EthNativeSigner, type EthNativeSignerOptions, type EthSignParams, type EthSigningKey, type EthTxParams, type EventFilters, type EventStream, type EvmPayload, type ExecuteWithdrawalOptions, type ExplorerConfig, type FaucetConfig, type FeeInput, type FeeUrgency, type FetchLike, GasPrice, type GetBlockResponse, type GetCosmosWalletOptions, type GetJsonOptions, type GetTxFn, type GetTxResponse, HYBRID_SIG_TYPE_URL, type Handler, type HashInput, type HttpOptions, type HybridBroadcaster, type HybridPlacement, type HybridSendPath, HybridSigner, type IncludedTx, type InjectedCosmosWallet, type InstantiateOpts, JsonRpcClient, type JsonRpcClientOptions, JsonRpcError, type JsonRpcErrorObject, type JsonRpcResponse, type KeplrChainInfo, type KeplrCurrency, type KeplrFeeCurrency, type KeyType, type LicenseQueryClient, type LightNodeQueryClient, ML_DSA_87_PUBLIC_KEY_LENGTH, ML_DSA_87_SECRET_KEY_LENGTH, ML_DSA_87_SEED_LENGTH, ML_DSA_87_SIGNATURE_LENGTH, MSG_SEND_TYPE_URL, type MigratePqcKeyOptions, type MigrateToHybridOptions, type MultilayerClient, type MultilayerQueryClient, type MultilayerWriteOptions, NETWORKS, type NetworkConfig, type NetworkEndpoints, type NetworkName, type NewBlockEventLike, PHANTOM_DERIVATION_DOMAIN, type PQCHybridSignature$1 as PQCHybridSignature, PQC_KEY_STATUS_PRECOMPILE_ADDRESS, type PageResponse, type PaginatedOptions, type Pagination, type ParsedAccountAuth, type PayloadInput, type PendingCrossVmMessagesResponse, type PhantomProvider, type PqcKeypair, type PqcQueryClient, type PqcSignaturePart, PqcSigner, type PqcStatus, type PqcStatusSource, type QcaQueryClient, QorClient, type QoreChainClient, type QoreChainQueryClients, QoreHttpError, QoreTxError, type QueryValue, type RawPayload, type RdkQueryClient, type RegisterPaychainOptions, type RegisterSidechainOptions, type ReputationQueryClient, type RequestFaucetOptions, type ResolveChallengeOptions, RestClient, type RestClientOptions, type RetryOptions, type RlConsensusQueryClient, type RollupClient, type RollupLifecycleOptions, type RollupWriteOptions, type RouteTransactionOptions, STATIC_FALLBACK, type SearchTxsOptions, type SearchTxsResponse, type Secp256k1Account, type SignAndBroadcastHybridOptions, type SignAndBroadcastOptions, type SignOutput, type SignatureMode, type SignedEthTx, type Signer, type SigningClientLike, type SimulateOptions, type SubmitBatchOptions, type SubscriptionClient, type SvmPayload, type SvmQueryClient, type SyncBroadcaster, TxClient, type TxClientOptions, type TxConnectOptions, type TxErrorInput, type TxEventLike, type FeeInput$1 as TxFeeInput, type TxOrderBy, type TxQueryFilters, type TxResultLike, type UnifiedAccount, type UnifiedAddresses, type Unsubscribe, VERSION, type VMType, VM_TYPES, type WaitForTxOptions, abstractaccount, accountAuthInfo, addressesFrom20, algorithmName, amm, attachHybridExtension, authz, bank, bech32ToHex, bridge, broadcastAndWait, buildAminoTypes, buildEventsQuery, buildHybridSignatureExtension, buildHybridTx, buildRegisterPqcKeyMsg, buildTxQuery, buildUrl, bytesToBech32, calculateFee, clearAdmin, connectCosmWasmSigner, connectPhantomUnified, connectQueryClients, createClient, createCosmWasmClient, createCrossVMClient, createMultilayerClient, createQueryClients, createRollupClient, createSubscriptionClient, crossvm, decodeTxError, deriveEvmAccount, deriveNativeAccount, deriveSvmAccount, deriveUnifiedAccount, directSignerFromPrivateKey, distribution, encodeHybridExtension, ensurePqcRegistered, estimateFee, evmToQor, execute, explorerAddressUrl, explorerBlockUrl, explorerTxUrl, feegrant, formatUnits, fromBase, generateMnemonic, generatePqcKeypair, getBlock, getCodeDetails, getCodes, getContractInfo, getContracts, getCosmosWallet, getCrossVmMessage, getCrossVmParams, getJson, getLatestBlock, getNetwork, getPendingCrossVmMessages, getPqcStatus, getTx, gov, hexToBech32, ibc, instantiate, instantiate2, isChecksumAddress, isPqcRegistered, isSignatureAlgorithm, isTxFailure, isValidBech32, isValidEvmAddress, isValidSvmAddress, joinUrl, keccak256, keccak256Hex, license, lightnode, listNetworks, migrate, migratePqcKey, migrateToHybrid, msg, multilayer, parseEthPubkeyAny, parseUnits, postJsonRpc, pqc as pqcMsg, pqcSign, pqcVerify, qorToEvm, qoreAddresses, qorechainRegistry, qorechainRegistryTypes, index as qorechainTypes, queryContractSmart, rdk, requestFaucet, ripemd160, ripemd160Hex, rlconsensus, searchTxs, sha256, sha256Hex, signAndBroadcastHybrid, signClassicalEth, signHybridEth, staking, subscribeNewBlocks, subscribeTx, suggestChainInfo, svm, toBase, toChecksumAddress, toHex, txErrorFrom, unifiedAccountFromPhantomSignature, unifiedAccountFromSeed, updateAdmin, uploadCode, validateMnemonic, waitForTx, withRetry };
10901
+ export { type AbstractAccountConfigView, type AbstractAccountQueryClient, type AbstractAccountView, type Account, type AccountSequence, AlgorithmDilithium5, type AlgorithmID, AlgorithmMLKEM1024, AlgorithmUnspecified, type AllBalancesResponse, type AmmQueryClient, type AnchorStateOptions, type AttachHybridOptions, type AuthenticatorWallet, type AutoFeeOptions, BRIDGE_ATTESTATION_V2_DOMAIN, type BalanceResponse, type BankSendOptions, type Bech32Config, type Bech32Prefixes, type BridgeAttestationSignBytesInput, type BridgeQueryClient, type BroadcastMode, type BroadcastResult, type BuildHybridTxOptions, type BuildMetaMaskExecuteCosmosOptions, type BuildMetaMaskExecuteEvmOptions, type BuildPhantomExecuteCosmosOptions, type BuildPhantomExecuteEvmOptions, type BuiltHybridTx, CANONICAL_DERIVATION, type CallOptions, type ChallengeBatchOptions, type ClientFees, type CoinInfo, type ConnectPhantomUnifiedOptions, type ConnectTxOptions, type ContractMsg, type CosmWasmPayload, type CosmWasmReadClient, type CosmWasmSigningClient, type CosmosAuthSignBytesInput, type CosmosWalletConnection, type CosmosWalletName, type CreateClientOptions, type CreateCrossVMClientOptions, type CreateMultilayerClientOptions, type CreateRollupClientOptions, type CreateRollupOptions, type CrossVMAtomicResult, type CrossVMCallBase, type CrossVMCallOptions, type CrossVMCallResult, type CrossVMClient, type CrossVMWriteOptions, type CrossVmMessage, type CrossVmMessageResponse, type CrossVmParamsResponse, type CrossVmQueryClient, DEFAULT_GAS_MULTIPLIER, DEFAULT_GAS_PRICE, type DecodedTxError, type DenomOptions, type DerivationOptions, ETHSECP256K1_PUBKEY_TYPE, type Ed25519Account, type Eip1193Provider, type EnsurePqcRegisteredOptions, type EnsurePqcRegisteredResult, type EstimateFeeOptions, type EthBroadcaster, EthNativeSigner, type EthNativeSignerOptions, type EthSignParams, type EthSigningKey, type EthTxParams, type EventFilters, type EventStream, type EvmAuthSignBytesInput, type EvmPayload, type ExecuteCosmosMsgInput, type ExecuteEvmMsgInput, type ExecuteWithdrawalOptions, type ExplorerConfig, type FaucetConfig, type FeeInput, type FeeUrgency, type FetchLike, GasPrice, type GetBlockResponse, type GetCosmosWalletOptions, type GetJsonOptions, type GetTxFn, type GetTxResponse, HYBRID_SIGN_BYTES_REJECTION_LOG, HYBRID_SIGN_BYTES_V2_DOMAIN, HYBRID_SIG_TYPE_URL, type Handler, type HashInput, type HttpOptions, type HybridBroadcaster, type HybridPlacement, type HybridSendPath, HybridSigner, type IncludedTx, type InjectedCosmosWallet, type InstantiateOpts, JsonRpcClient, type JsonRpcClientOptions, JsonRpcError, type JsonRpcErrorObject, type JsonRpcResponse, type KeplrChainInfo, type KeplrCurrency, type KeplrFeeCurrency, type KeyType, LEGACY_DERIVATION, LEGACY_SIGN_BYTES_CHAINS, type LicenseQueryClient, type LightNodeQueryClient, MIGRATION_SIGN_BYTES_V2_DOMAIN, ML_DSA_87_PUBLIC_KEY_LENGTH, ML_DSA_87_SECRET_KEY_LENGTH, ML_DSA_87_SEED_LENGTH, ML_DSA_87_SIGNATURE_LENGTH, MSG_SEND_TYPE_URL, type MigratePqcKeyOptions, type MigrateToHybridOptions, type MigrationSignBytesInput, type MultilayerClient, type MultilayerQueryClient, type MultilayerWriteOptions, NETWORKS, type NetworkConfig, type NetworkEndpoints, type NetworkName, type NewBlockEventLike, type PQCHybridSignature$1 as PQCHybridSignature, PQC_KEY_STATUS_PRECOMPILE_ADDRESS, type PageResponse, type PaginatedOptions, type Pagination, type ParsedAccountAuth, type PayloadInput, type PendingCrossVmMessagesResponse, type PermissionSchemaResponse, type PhantomProvider, type PqcKeypair, type PqcQueryClient, type PqcSignaturePart, PqcSigner, type PqcStatus, type PqcStatusSource, type QcaQueryClient, QorClient, type QoreChainClient, type QoreChainQueryClients, QoreHttpError, QoreTxError, type QueryValue, type RawPayload, type RdkQueryClient, type RegisterEthAuthenticatorMsgInput, type RegisterPaychainOptions, type RegisterSidechainOptions, type ReputationQueryClient, type RequestFaucetOptions, type ResolveChallengeOptions, type ResolveSignBytesVersionOptions, RestClient, type RestClientOptions, type RetryOptions, type RevokeAuthenticatorMsgInput, type RlConsensusQueryClient, type RollupClient, type RollupLifecycleOptions, type RollupWriteOptions, type RotatePqcKeyMsgFromMnemonicOptions, type RotatePqcKeyMsgFromMnemonicResult, type RotatePqcKeyMsgInput, type RouteTransactionOptions, SIGN_BYTES_V2_UPGRADE, STATIC_FALLBACK, type SearchTxsOptions, type SearchTxsResponse, type Secp256k1Account, type SignAndBroadcastHybridOptions, type SignAndBroadcastOptions, type SignBytesVersion, type SignBytesVersionOption, type SignOutput, type SignatureMode, type SignedEthTx, type Signer, type SigningClientLike, type SimulateOptions, type SubmitBatchOptions, type SubscriptionClient, type SvmPayload, type SvmQueryClient, type SyncBroadcaster, TxClient, type TxClientOptions, type TxConnectOptions, type TxErrorInput, type TxEventLike, type FeeInput$1 as TxFeeInput, type TxOrderBy, type TxQueryFilters, type TxResultLike, type UnifiedAccount, type UnifiedAddresses, type Unsubscribe, VERSION, type VMType, VM_TYPES, type WaitForTxOptions, abstractaccount, accountAuthInfo, addressesFrom20, algorithmName, amm, attachHybridExtension, authz, bank, be64, bech32ToHex, bridge, bridgeAttestationSignBytes, bridgeAttestationSignBytesV1, bridgeAttestationSignBytesV2, broadcastAndWait, buildAminoTypes, buildEventsQuery, buildHybridSignatureExtension, buildHybridTx, buildMetaMaskExecuteCosmos, buildMetaMaskExecuteEvm, buildPhantomExecuteCosmos, buildPhantomExecuteEvm, buildRegisterPqcKeyMsg, buildTxQuery, buildUrl, bytesToBech32, calculateFee, clearAdmin, clearSignBytesCache, connectCosmWasmSigner, connectPhantomUnified, connectQueryClients, cosmosAuthSignBytes, createClient, createCosmWasmClient, createCrossVMClient, createMultilayerClient, createQueryClients, createRollupClient, createSubscriptionClient, crossvm, decodeTxError, deriveEvmAccount, deriveNativeAccount, derivePqcLegacy, deriveSvmAccount, deriveUnifiedAccount, directSignerFromPrivateKey, distribution, encodeHybridExtension, ensurePqcRegistered, estimateFee, evmAuthSignBytes, evmToQor, execute, executeCosmosMsg, executeEvmMsg, explorerAddressUrl, explorerBlockUrl, explorerTxUrl, feegrant, fetchSignBytesV2AppliedHeight, formatUnits, fromBase, generateMnemonic, generatePqcKeypair, getBlock, getCodeDetails, getCodes, getContractInfo, getContracts, getCosmosWallet, getCrossVmMessage, getCrossVmParams, getJson, getLatestBlock, getNetwork, getPendingCrossVmMessages, getPqcStatus, getTx, gov, hexToBech32, hybridSignBytes, hybridSignBytesV1, hybridSignBytesV2, ibc, instantiate, instantiate2, isChecksumAddress, isHybridSignBytesRejection, isLegacySignBytesChain, isPqcRegistered, isSignatureAlgorithm, isTxFailure, isValidBech32, isValidEvmAddress, isValidSvmAddress, joinUrl, keccak256, keccak256Hex, lengthPrefixed, license, lightnode, listNetworks, migrate, migratePqcKey, migrateToHybrid, migrationSignBytes, migrationSignBytesV1, migrationSignBytesV2, msg, multilayer, parseEthPubkeyAny, parseUnits, postJsonRpc, pqc as pqcMsg, pqcSign, pqcVerify, qorToEvm, qoreAddresses, qorechainRegistry, qorechainRegistryTypes, index as qorechainTypes, queryContractSmart, rdk, registerEthAuthenticatorMsg, requestFaucet, resolveSignBytesVersion, revokeAuthenticatorMsg, ripemd160, ripemd160Hex, rlconsensus, rotatePqcKeyMsg, rotatePqcKeyMsgFromMnemonic, rotationSignBytes, searchTxs, sha256, sha256Hex, signAndBroadcastHybrid, signBytesVersionFor, signClassicalEth, signHybridEth, staking, subscribeNewBlocks, subscribeTx, suggestChainInfo, svm, toBase, toChecksumAddress, toHex, txErrorFrom, unifiedAccountFromPhantomSignature, unifiedAccountFromSeed, updateAdmin, uploadCode, validateMnemonic, waitForTx, withRetry };