@sovereign-sdk/web3
TypeScript icon, indicating that this package has built-in type declarations

0.0.15 • Public • Published

@sovereign-sdk/web3

npm version CI

A TypeScript client library for interacting with Sovereign SDK rollups.

Installation

npm install @sovereign-sdk/web3

Features

  • 🔄 Type-safe transaction submission and signing
  • 🔍 Runtime call simulation for gas estimation
  • 📦 Borsh serialization with schema validation
  • 🎯 Strongly typed rollup interactions with customizable type specifications
  • 🌐 Full access to ledger, sequencer, and rollup APIs

Usage

Basic Setup

import { StandardRollup } from '@sovereign-sdk/web3';
import { newMetaMaskSnapSigner } from '@sovereign-sdk/signers';

// Initialize the rollup client
const rollup = new StandardRollup({
  url: 'https://your-rollup-node.com',
  schema: yourSchema,
  defaultTxDetails: {
    max_priority_fee_bips: 1000,
    max_fee: 1000000,
    chain_id: 1,
  },
});

// Initialize a signer
const signer = newMetaMaskSnapSigner({
  curve: 'ed25519',
  schema: yourSchema,
  snapId: 'npm:@sovereign-sdk/metamask-snap',
});

Submitting Transactions

// Submit a runtime call
const result = await rollup.call(
  {
    value_setter: {
      set_value: 100,
    },
  },
  { signer }
);

Type Safety

type MyRollupTypes = RollupTypeSpec<{
  RuntimeCall: {
    value_setter: {
      set_value: number;
    };
  };
  // Add other type specifications as needed
}>;

const typedRollup = new StandardRollup<MyRollupTypes>({
  // ... config
});

// Now your calls will be type-checked!
const result = await typedRollup.call(
  {
    value_setter: {
      set_value: 100, // Type checked and automatically serialized to Borsh bytes
    },
  },
  { signer }
);

Simulation

// Simulate a call to estimate gas
const simulation = await rollup.simulate(
  {
    value_setter: {
      set_value: 100,
    },
  },
  {
    signer,
    txDetails: {
      max_priority_fee_bips: 1000,
      max_fee: 1000000,
      chain_id: 1,
    },
  }
);

API Reference

The package exports the following main components:

  • StandardRollup: The main client class for interacting with rollups
  • RollupTypeSpec: Type utility for creating type-safe rollup interactions
  • createSerializer: Function to create a Borsh serializer for your rollup schema

For detailed API documentation, please refer to the inline TypeScript documentation in the source code.

/@sovereign-sdk/web3/

    Package Sidebar

    Install

    npm i @sovereign-sdk/web3

    Weekly Downloads

    56

    Version

    0.0.15

    License

    none

    Unpacked Size

    104 kB

    Total Files

    9

    Last publish

    Collaborators

    • prestonevans
    • ross-weir