@sovereign-sdk/web3 0.14.1 → 0.15.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
@@ -4,7 +4,8 @@ import * as SovereignClient from '@sovereign-sdk/client';
4
4
  export { SovereignClient };
5
5
  import { RollupSchema as RollupSchema$1, Serializer as Serializer$1 } from '@sovereign-sdk/serializers';
6
6
  import { Signer } from '@sovereign-sdk/signers';
7
- import { TxDetails, UnsignedTransaction, Transaction, TransactionV1 } from '@sovereign-sdk/types';
7
+ import { Multisig } from '@sovereign-sdk/multisig';
8
+ import { TxDetails, UnsignedTransaction, TransactionSigningPayload, Transaction } from '@sovereign-sdk/types';
8
9
 
9
10
  /**
10
11
  * Encodes a public key as a bech32m address with the given human-readable part (hrp).
@@ -34,6 +35,22 @@ type EventPayload = {
34
35
  type: "moduleRef";
35
36
  name: string;
36
37
  };
38
+ /**
39
+ * The run of numbering this copy of the event is served under.
40
+ *
41
+ * Present on every event served by the sequencer, from its cache or read back from the
42
+ * ledger: the sequencer's epoch at the time of serving. Before applying this event to a
43
+ * state snapshot, check it against the `x-sov-event-epoch` header that snapshot came with:
44
+ * if they differ, the sequencer has discarded soft confirmations since the snapshot was
45
+ * taken and the client must resynchronise. Comparing `number` alone is not enough, because
46
+ * a rollback that re-emits past where it rewound leaves the number higher than before.
47
+ *
48
+ * Absent on events from the node's ledger API, which has no epoch. An absent epoch counts
49
+ * as the all-zero epoch, which only a publisher that never reissues numbers, such as the
50
+ * standard sequencer, reports. On a DA layer without instant finality, a DA reorg can still
51
+ * renumber events in non-finalized slots; no epoch guards against that.
52
+ */
53
+ epoch?: string;
37
54
  };
38
55
  interface SubscriptionToCallbackMap {
39
56
  events: (event: EventPayload) => Promise<void>;
@@ -54,6 +71,10 @@ type BaseTypeSpec = {
54
71
  * The type of unsigned transaction used in the rollup.
55
72
  */
56
73
  UnsignedTransaction: any;
74
+ /**
75
+ * The type of transaction signing payload used in the rollup.
76
+ */
77
+ TransactionSigningPayload: any;
57
78
  /**
58
79
  * The type of runtime call used in the rollup.
59
80
  */
@@ -128,14 +149,21 @@ type TransactionContext<S extends BaseTypeSpec, C extends RollupContext> = {
128
149
  signature: Uint8Array;
129
150
  rollup: Rollup<S, C>;
130
151
  };
152
+ type TransactionSigningPayloadContext<S extends BaseTypeSpec, C extends RollupContext> = {
153
+ unsignedTx: S["UnsignedTransaction"];
154
+ chainHash: Uint8Array;
155
+ rollup: Rollup<S, C>;
156
+ };
131
157
  type TypeBuilder<S extends BaseTypeSpec, C extends RollupContext> = {
132
158
  unsignedTransaction: (context: UnsignedTransactionContext<S, C>) => Promise<S["UnsignedTransaction"]>;
159
+ transactionSigningPayload: (context: TransactionSigningPayloadContext<S, C>) => Promise<S["TransactionSigningPayload"]>;
133
160
  transaction: (context: TransactionContext<S, C>) => Promise<S["Transaction"]>;
134
161
  };
135
162
  /**
136
163
  * Arbitrary context that is associated with the rollup.
137
164
  */
138
165
  type RollupContext = Record<string, unknown>;
166
+ type CredentialIdToAddress = (credentialId: Uint8Array, schema: RollupSchema$1) => string;
139
167
  /**
140
168
  * The configuration for a rollup client.
141
169
  */
@@ -156,6 +184,10 @@ type RollupConfig<C extends RollupContext> = {
156
184
  * is detected then it will be called again with the new rollup schema.
157
185
  */
158
186
  getSerializer: (schema: RollupSchema$1) => Serializer$1;
187
+ /**
188
+ * Optional hook for converting multisig credential IDs into the rollup's native address format.
189
+ */
190
+ credentialIdToAddress?: CredentialIdToAddress;
159
191
  /**
160
192
  * Arbitrary context that is associated with the rollup.
161
193
  */
@@ -224,6 +256,16 @@ declare class Rollup<S extends BaseTypeSpec, C extends RollupContext> {
224
256
  * TODO: How to request a specific uniqueness strategy explicitly
225
257
  */
226
258
  dedup(publicKey: Uint8Array): Promise<S["Dedup"]>;
259
+ /**
260
+ * Retrieve dedup information about the provided credential ID.
261
+ */
262
+ dedupByCredentialId(credentialId: HexString): Promise<S["Dedup"]>;
263
+ /**
264
+ * Builds an unsigned transaction for the provided runtime call.
265
+ */
266
+ buildUnsignedTransaction(runtimeCall: S["RuntimeCall"], params?: {
267
+ overrides?: DeepPartial<S["UnsignedTransaction"]>;
268
+ }): Promise<S["UnsignedTransaction"]>;
227
269
  /**
228
270
  * Submits a transaction to the rollup.
229
271
  *
@@ -267,8 +309,8 @@ declare class Rollup<S extends BaseTypeSpec, C extends RollupContext> {
267
309
  prepareCall(runtimeCall: S["RuntimeCall"], { signer, overrides }: CallParams<S>): Promise<S["Transaction"]>;
268
310
  /**
269
311
  * Signs an unsigned transaction using the provided signer.
270
- * Creates a signature by combining the serialized unsigned transaction with the chain hash,
271
- * then constructs a fully signed transaction.
312
+ * Creates a signature over the serialized transaction signing payload, then constructs a fully
313
+ * signed transaction.
272
314
  *
273
315
  * @param unsignedTx - The unsigned transaction to sign.
274
316
  * @param signer - The signer to use for signing the transaction.
@@ -322,14 +364,18 @@ declare class Rollup<S extends BaseTypeSpec, C extends RollupContext> {
322
364
  private _fetchSchema;
323
365
  }
324
366
 
367
+ declare function chainHashFragment(chainHash: Uint8Array): string;
368
+
325
369
  type Dedup = {
326
370
  nonce: number;
327
371
  };
328
372
  type StandardRollupContext = {
329
373
  defaultTxDetails: TxDetails;
374
+ credentialIdToAddress?: CredentialIdToAddress;
330
375
  };
331
376
  type StandardRollupSpec<RuntimeCall> = {
332
377
  UnsignedTransaction: UnsignedTransaction<RuntimeCall>;
378
+ TransactionSigningPayload: TransactionSigningPayload<RuntimeCall>;
333
379
  Transaction: Transaction<RuntimeCall>;
334
380
  RuntimeCall: RuntimeCall;
335
381
  Dedup: Dedup;
@@ -337,9 +383,23 @@ type StandardRollupSpec<RuntimeCall> = {
337
383
  declare function standardTypeBuilder<S extends StandardRollupSpec<unknown>>(): TypeBuilder<S, StandardRollupContext>;
338
384
  /**
339
385
  * The parameters for simulating a runtime call transaction.
386
+ *
387
+ * Adds `address_override` until `@sovereign-sdk/client` is republished with it.
388
+ * As of `0.1.0-alpha.39` the generated `RollupSimulateParams` is missing the
389
+ * field even though the Rust type and OpenAPI spec ship it (added in commit
390
+ * `6e7d22a52`). Once a newer client publishes `address_override` natively,
391
+ * drop this `Omit`-extension AND the `as SovereignClient.RollupSimulateParams`
392
+ * cast in `simulate()`.
340
393
  */
341
- type SimulateParams = Omit<SovereignClient__default.RollupSimulateParams, "call" | "sender"> & SignerParams;
394
+ type SimulateParams = Omit<SovereignClient__default.RollupSimulateParams, "call" | "sender"> & SignerParams & {
395
+ address_override?: string | null;
396
+ };
342
397
  declare class StandardRollup<RuntimeCall> extends Rollup<StandardRollupSpec<RuntimeCall>, StandardRollupContext> {
398
+ private updateDefaultChainHashFragment;
399
+ private credentialAddressFromId;
400
+ submitTransaction(transaction: StandardRollupSpec<RuntimeCall>["Transaction"], options?: SovereignClient__default.RequestOptions): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
401
+ hydrate(): Promise<void>;
402
+ multisigSigningBytes(unsignedTx: UnsignedTransaction<RuntimeCall>, multisig: Multisig): Promise<Uint8Array>;
343
403
  /**
344
404
  * Simulates a runtime call transaction.
345
405
  *
@@ -347,9 +407,9 @@ declare class StandardRollup<RuntimeCall> extends Rollup<StandardRollupSpec<Runt
347
407
  *
348
408
  * @param runtimeMessage - The runtime message to call.
349
409
  */
350
- simulate(runtimeMessage: StandardRollupSpec<RuntimeCall>["RuntimeCall"], { signer }: SimulateParams): Promise<SovereignClient__default.Rollup.RollupSimulateResponse>;
410
+ simulate(runtimeMessage: StandardRollupSpec<RuntimeCall>["RuntimeCall"], { signer, ...params }: SimulateParams): Promise<SovereignClient__default.Rollup.RollupSimulateResponse>;
351
411
  }
352
- declare const DEFAULT_TX_DETAILS: Omit<TxDetails, "chain_id">;
412
+ declare const DEFAULT_TX_DETAILS: Omit<TxDetails, "chain_hash_fragment">;
353
413
  declare function createStandardRollup<RuntimeCall, C extends StandardRollupContext = StandardRollupContext>(rollupConfig?: Partial<RollupConfig<DeepPartial<C>>>, typeBuilderOverrides?: Partial<TypeBuilder<StandardRollupSpec<RuntimeCall>, C>>): Promise<StandardRollup<RuntimeCall>>;
354
414
 
355
415
  /**
@@ -399,12 +459,12 @@ declare abstract class Serializer {
399
459
  */
400
460
  serializeRuntimeCall(input: unknown): Uint8Array;
401
461
  /**
402
- * Serialize an unsigned transaction to Borsh bytes.
462
+ * Serialize a transaction signing payload to Borsh bytes.
403
463
  *
404
- * @param input - The unsigned transaction to serialize.
464
+ * @param input - The transaction signing payload to serialize.
405
465
  * @returns The serialized Borsh bytes.
406
466
  */
407
- serializeUnsignedTx(input: unknown): Uint8Array;
467
+ serializeSigningPayload(input: unknown): Uint8Array;
408
468
  /**
409
469
  * Serialize a transaction to Borsh bytes.
410
470
  *
@@ -416,24 +476,36 @@ declare abstract class Serializer {
416
476
  get schema(): RollupSchema;
417
477
  }
418
478
 
419
- type SolanaOffchainUnsignedTransaction<RuntimeCall> = UnsignedTransaction<RuntimeCall> & {
479
+ type SolanaOffchainSigningPayloadV0<RuntimeCall> = Omit<UnsignedTransaction<RuntimeCall>, "address_override"> & {
420
480
  chain_name: string;
481
+ /**
482
+ * Message format version. Must be 0 for V0 payloads.
483
+ */
484
+ version: 0;
485
+ /**
486
+ * Signer-declared address override.
487
+ * See `AuthorizationData::address_override` (Rust) for routing semantics.
488
+ */
489
+ address_override?: string;
421
490
  };
422
- type SolanaOffchainUnsignedTransactionV1<RuntimeCall> = SolanaOffchainUnsignedTransaction<RuntimeCall> & {
423
- multisig_id: string;
424
- version: number;
491
+ type SolanaOffchainSigningPayloadV1<RuntimeCall, MultisigId = unknown> = Omit<SolanaOffchainSigningPayloadV0<RuntimeCall>, "version"> & {
492
+ multisig_id: MultisigId;
493
+ /**
494
+ * Message format version. Must be 1 for V1 payloads.
495
+ */
496
+ version: 1;
425
497
  };
426
- type SolanaOffchainSimpleMessage = {
498
+ type SolanaOffchainSimpleEnvelope = {
427
499
  signed_message: Uint8Array;
428
500
  chain_hash: Uint8Array;
429
501
  pubkey: Uint8Array;
430
502
  signature: Uint8Array;
431
503
  };
432
- type SolanaOffchainSpecCompliantMessage = {
504
+ type SolanaOffchainSpecCompliantEnvelope = {
433
505
  signed_message_with_preamble: Uint8Array;
434
506
  signature: Uint8Array;
435
507
  };
436
- type SolanaOffchainSimpleMultisigMessage = {
508
+ type SolanaOffchainSimpleMultisigEnvelope = {
437
509
  /** Wire format: [0x80][JSON payload]. The 0x80 prefix is a parsing discriminator only. */
438
510
  wire_bytes: Uint8Array;
439
511
  chain_hash: Uint8Array;
@@ -444,26 +516,14 @@ type SolanaOffchainSimpleMultisigMessage = {
444
516
  unused_pub_keys: Uint8Array[];
445
517
  min_signers: number;
446
518
  };
447
- type SolanaOffchainSpecCompliantMultisigMessage = {
519
+ type SolanaOffchainSpecCompliantMultisigEnvelope = {
448
520
  signed_message_with_preamble: Uint8Array;
449
521
  signatures: Uint8Array[];
450
522
  signer_bitfield: number;
451
523
  min_signers: number;
452
524
  };
453
525
  type Authenticator = "standard" | "solanaSimple" | "solana" | "solanaAuto";
454
- type SolanaMultisigAuthenticator = "solanaSimple" | "solana";
455
- type SolanaMultisigParams = {
456
- multisigAddress: Uint8Array;
457
- multisigPubkeys: Uint8Array[];
458
- };
459
- type SolanaMultisigSubmitParams = {
460
- authenticator: "standard";
461
- } | ({
462
- authenticator: SolanaMultisigAuthenticator;
463
- } & SolanaMultisigParams);
464
- type SolanaMultisigSignParams = SolanaMultisigSubmitParams & {
465
- signer: Signer;
466
- };
526
+ type SubmissionAuthenticator = Exclude<Authenticator, "solanaAuto">;
467
527
  declare class SolanaSignableRollup<RuntimeCall> {
468
528
  private inner;
469
529
  private solanaEndpoint;
@@ -491,10 +551,6 @@ declare class SolanaSignableRollup<RuntimeCall> {
491
551
  * Submits a Solana spec-compliant multisig message to the rollup.
492
552
  */
493
553
  private submitSolanaSpecMultisigMessage;
494
- /**
495
- * Helper to build an unsigned transaction using the standard type builder.
496
- */
497
- private buildUnsignedTransaction;
498
554
  /**
499
555
  * Helper to build a transaction result object.
500
556
  */
@@ -509,7 +565,7 @@ declare class SolanaSignableRollup<RuntimeCall> {
509
565
  */
510
566
  private canonicalizeMultisigPubkeys;
511
567
  /**
512
- * Helper to create and serialize a SolanaOffchainUnsignedTransaction to JSON bytes.
568
+ * Helper to create and serialize a SolanaOffchainSigningPayloadV0 to JSON bytes.
513
569
  */
514
570
  private createSolanaJsonBytes;
515
571
  /**
@@ -547,60 +603,51 @@ declare class SolanaSignableRollup<RuntimeCall> {
547
603
  signer: Signer;
548
604
  authenticator: Authenticator;
549
605
  }, options?: SovereignClient__default.RequestOptions): Promise<TransactionResult<Transaction<RuntimeCall>>>;
606
+ buildUnsignedTransaction(runtimeCall: RuntimeCall, params?: {
607
+ overrides?: DeepPartial<UnsignedTransaction<RuntimeCall>>;
608
+ }): Promise<UnsignedTransaction<RuntimeCall>>;
550
609
  /**
551
610
  * Creates V1 JSON bytes for a multisig transaction, including multisig_id and version.
552
611
  * The resulting JSON is what each signer signs directly (no discriminator prefix).
553
612
  */
554
613
  private createMultisigJsonBytes;
555
614
  /**
556
- * Creates the preamble+JSON bytes signed by every signer in a spec-compliant multisig flow.
615
+ * Formats the multisig credential in the rollup's configured address format.
557
616
  */
558
- private createSpecCompliantMultisigSignedMessage;
617
+ private multisigIdFromMultisig;
559
618
  /**
560
- * Signs an unsigned transaction using Solana offchain simple multisig signing.
619
+ * Creates multisig state from a finalized transaction envelope.
561
620
  */
562
- private signForSolanaSimpleMultisig;
621
+ private multisigFromTransaction;
622
+ private normalizeMultisigTransaction;
563
623
  /**
564
- * Signs an unsigned transaction using the spec-compliant multisig preamble.
624
+ * Extracts the V0-shaped unsigned fields from a finalized multisig transaction.
565
625
  */
566
- private signForSolanaSpecMultisig;
626
+ private unsignedTxFromTransaction;
567
627
  /**
568
- * Signs an unsigned transaction for use in a Solana offchain multisig.
569
- *
570
- * `authenticator: "standard"` delegates directly to the wrapped standard rollup.
571
- * `authenticator: "solanaSimple"` signs the V1 JSON payload directly.
572
- * `authenticator: "solana"` signs the spec-compliant preamble+JSON bytes.
573
- * Solana multisig authenticators treat `multisigPubkeys` as an unordered set and
574
- * canonicalize it before signing.
628
+ * Creates the preamble+JSON bytes signed by every signer in a spec-compliant multisig flow.
575
629
  */
576
- signTransactionForMultisig(unsignedTx: UnsignedTransaction<RuntimeCall>, params: SolanaMultisigSignParams): Promise<Transaction<RuntimeCall>>;
630
+ private createSpecCompliantMultisigSignedMessage;
631
+ multisigSigningBytes(unsignedTx: UnsignedTransaction<RuntimeCall>, multisig: Multisig, authenticator: SubmissionAuthenticator): Promise<Uint8Array>;
577
632
  /**
578
- * Builds a spec-compliant multisig envelope from a V1 transaction and ordered multisig pubkeys.
633
+ * Builds a spec-compliant multisig envelope from a V1 transaction.
579
634
  */
580
635
  private buildSpecCompliantMultisigEnvelope;
581
636
  /**
582
- * Submits a multisig transaction using the Solana offchain simple multisig format.
583
- *
584
- * Accepts the V1 transaction produced by `MultisigTransaction.asTransaction()`.
585
- * `authenticator: "standard"` delegates directly to the wrapped standard rollup.
586
- * Solana authenticators rebuild the appropriate Solana multisig envelope and
587
- * submit it to the Solana offchain endpoint.
588
- */
589
- submitMultisigTransaction(multisigTx: TransactionV1<RuntimeCall>, params: SolanaMultisigSubmitParams): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
590
- /**
591
- * Submits a standard transaction.
637
+ * Submits a finalized V1 multisig transaction using a Solana authenticator.
592
638
  */
593
- submitTransaction(transaction: StandardRollupSpec<RuntimeCall>["Transaction"], authenticator: "standard", options?: SovereignClient__default.RequestOptions): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
639
+ private submitMultisigTransactionWithAuthenticator;
594
640
  /**
595
- * Submits a Solana offchain message.
641
+ * Submits a finalized V0 transaction using a Solana authenticator.
596
642
  */
597
- submitTransaction(transaction: SolanaOffchainSimpleMessage, authenticator: "solanaSimple", options?: SovereignClient__default.RequestOptions): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
643
+ private submitSingleSignatureTransactionWithAuthenticator;
598
644
  /**
599
- * Submits a Solana spec-compliant message.
645
+ * Submits a transaction with the specified authenticator.
600
646
  */
601
- submitTransaction(transaction: SolanaOffchainSpecCompliantMessage, authenticator: "solana", options?: SovereignClient__default.RequestOptions): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
647
+ submitTransaction(transaction: Transaction<RuntimeCall>, authenticator: SubmissionAuthenticator, options?: SovereignClient__default.RequestOptions): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
602
648
  simulate(runtimeMessage: RuntimeCall, params: Parameters<StandardRollup<RuntimeCall>["simulate"]>[1]): Promise<SovereignClient__default.Rollup.RollupSimulateResponse>;
603
649
  dedup(address: Uint8Array): Promise<Dedup>;
650
+ dedupByCredentialId(credentialId: HexString): Promise<Dedup>;
604
651
  serializer(): Promise<Serializer>;
605
652
  chainHash(): Promise<Uint8Array>;
606
653
  /**
@@ -616,15 +663,15 @@ declare class SolanaSignableRollup<RuntimeCall> {
616
663
  get rollup(): SovereignClient__default.Rollup;
617
664
  get http(): SovereignClient__default;
618
665
  /**
619
- * Helper method to serialize a SolanaOffchainSimpleMessage using borsh encoding.
666
+ * Helper method to serialize a SolanaOffchainSimpleEnvelope using borsh encoding.
620
667
  */
621
668
  private serializeSolanaMessage;
622
669
  /**
623
- * Helper method to serialize a SolanaOffchainSpecCompliantMessage using borsh encoding.
670
+ * Helper method to serialize a SolanaOffchainSpecCompliantEnvelope using borsh encoding.
624
671
  */
625
672
  private serializeSolanaSpecMessage;
626
673
  /**
627
- * Serializes a SolanaOffchainSimpleMultisigMessage using borsh encoding.
674
+ * Serializes a SolanaOffchainSimpleMultisigEnvelope using borsh encoding.
628
675
  * Layout matches the Rust struct:
629
676
  * [u32 LE: wire_bytes.len][wire_bytes]
630
677
  * [32 bytes: chain_hash]
@@ -636,7 +683,7 @@ declare class SolanaSignableRollup<RuntimeCall> {
636
683
  */
637
684
  private serializeSolanaMultisigMessage;
638
685
  /**
639
- * Serializes a SolanaOffchainSpecCompliantMultisigMessage using borsh encoding.
686
+ * Serializes a SolanaOffchainSpecCompliantMultisigEnvelope using borsh encoding.
640
687
  * Layout matches the Rust struct:
641
688
  * [u32 LE: signed_message_with_preamble.len][signed_message_with_preamble]
642
689
  * [u32 LE: signatures.len]
@@ -668,4 +715,4 @@ declare class SchemaError extends SovereignError {
668
715
  constructor(message: string, reason: string, schema: object);
669
716
  }
670
717
 
671
- export { type Authenticator, type BaseTypeSpec, type CallParams, DEFAULT_TX_DETAILS, type Dedup, type EventPayload, InvalidRollupConfigError, Rollup, type RollupConfig, type RollupContext, type RollupTypeSpec, SchemaError, type SignerParams, type SimulateParams, type SolanaMultisigAuthenticator, type SolanaMultisigSignParams, type SolanaMultisigSubmitParams, type SolanaOffchainSimpleMessage, type SolanaOffchainSimpleMultisigMessage, type SolanaOffchainSpecCompliantMessage, type SolanaOffchainSpecCompliantMultisigMessage, type SolanaOffchainUnsignedTransaction, type SolanaOffchainUnsignedTransactionV1, SolanaSignableRollup, SovereignError, StandardRollup, type StandardRollupContext, type StandardRollupSpec, type Subscription, type TransactionContext, type TransactionResult, type TypeBuilder, type UnsignedTransactionContext, VersionMismatchError, addressFromPublicKey, createSolanaSignableRollup, createStandardRollup, standardTypeBuilder };
718
+ export { type Authenticator, type BaseTypeSpec, type CallParams, type CredentialIdToAddress, DEFAULT_TX_DETAILS, type Dedup, type EventPayload, InvalidRollupConfigError, Rollup, type RollupConfig, type RollupContext, type RollupTypeSpec, SchemaError, type SignerParams, type SimulateParams, type SolanaOffchainSigningPayloadV0, type SolanaOffchainSigningPayloadV1, type SolanaOffchainSimpleEnvelope, type SolanaOffchainSimpleMultisigEnvelope, type SolanaOffchainSpecCompliantEnvelope, type SolanaOffchainSpecCompliantMultisigEnvelope, SolanaSignableRollup, SovereignError, StandardRollup, type StandardRollupContext, type StandardRollupSpec, type SubmissionAuthenticator, type Subscription, type TransactionContext, type TransactionResult, type TransactionSigningPayloadContext, type TypeBuilder, type UnsignedTransactionContext, VersionMismatchError, addressFromPublicKey, chainHashFragment, createSolanaSignableRollup, createStandardRollup, standardTypeBuilder };