Code Monkey home page Code Monkey logo

starknet-rs's Introduction

Logo

starknet-rs

Complete Starknet library in Rust

starknet-version-v0.13.0 jsonrpc-spec-v0.7.1 linting-badge crates-badge

Note that starknet-rs is still experimental. Breaking changes will be made before the first stable release. The library is also NOT audited or reviewed for security at the moment. Use at your own risk.

The underlying cryptography library starknet-crypto does NOT provide constant-time guarantees.

Adding starknet-rs to your project

To use the crate from crates.io, add the following to your Cargo.toml file:

[dependencies]
starknet = "0.11.0"

Note that the crates.io version might be outdated. You may want to use the library directly from GitHub for all the latest features and fixes:

[dependencies]
starknet = { git = "https://github.com/xJonathanLEI/starknet-rs" }

Features

  • Sequencer gateway / feeder gateway client
  • Full node JSON-RPC API client
  • Smart contract deployment
  • Signer for using IAccount account contracts
  • Strongly-typed smart contract binding code generation from ABI

Crates

This workspace contains the following crates:

  • starknet: Re-export of other sub-crates (recommended)
  • starknet-core: Core data structures for interacting with Starknet
  • starknet-providers: Abstraction and implementation of clients for interacting with Starknet nodes and sequencers
  • starknet-contract: Types for deploying and interacting with Starknet smart contracts
  • starknet-crypto: Low-level cryptography utilities for Starknet
  • starknet-signers: Starknet signer implementations
  • starknet-accounts: Types for handling Starknet account abstraction
  • starknet-curve: Starknet curve operations
  • starknet-macros: Useful macros for using the starknet crates

WebAssembly

starknet-rs can be used as a WebAssembly module. Check out this example.

Using starknet-rs from C++

starknet-rs can be used as a dynamic or static library from C++. Check out this example.

Performance

Benchmark results for native and WebAssembly targets are available for these crates:

For instructions on running the benchmark yourself, check here.

Example

Examples can be found in the examples folder:

  1. Get the latest block from alpha-sepolia testnet

  2. Deploy contract to alpha-sepolia testnet via UDC

  3. Mint yourself 1,000 TST tokens on alpha-sepolia

    Make sure your account has some L2 Sepolia ETH to pay for the transaction fee.

  4. Declare Cairo 1 contract on alpha-sepolia testnet

    Make sure your account has some L2 Sepolia ETH to pay for the transaction fee.

  5. Declare legacy Cairo 0 contract on alpha-sepolia testnet

    Make sure your account has some L2 Sepolia ETH to pay for the transaction fee.

  6. Query the latest block number with JSON-RPC

  7. Call a contract view function

  8. Deploy an Argent X account to a pre-funded address

  9. Parsing a JSON-RPC request on the server side

  10. Inspecting a erased provider-specific error type

License

Licensed under either of

at your option.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.