Sui TypeScript SDK
This is the Sui TypeScript SDK built on the Sui JSON RPC API. It provides utility classes and functions for applications to sign transactions and interact with the Sui network.
Note that the SDK is still in development mode and some API functions are subject to change.
Installation
$ yarn add @mysten/sui.js
Local Development Environment Setup
Follow the JSON RPC doc to start a local network and local RPC server
Usage
The JsonRpcProvider
class provides a connection to the JSON-RPC Server and should be used for all read-only operations. For example:
Fetch objects owned by the address 0xbff6ccc8707aa517b4f1b95750a2a8c666012df3
import { JsonRpcProvider } from '@mysten/sui.js';
const provider = new JsonRpcProvider('https://gateway.devnet.sui.io:9000/');
const objects = await provider.getOwnedObjectRefs(
'0xbff6ccc8707aa517b4f1b95750a2a8c666012df3'
);
Fetch transaction details from a transaction digest:
import { JsonRpcProvider } from '@mysten/sui.js';
const provider = new JsonRpcProvider('https://gateway.devnet.sui.io:9000/');
const txn = await provider.getTransaction(
'6mn5W1CczLwitHCO9OIUbqirNrQ0cuKdyxaNe16SAME='
);
For any operations that involves signing or submitting transactions, you should use the Signer
API. For example:
To transfer a Coin:
import { Ed25519Keypair, JsonRpcProvider, RawSigner } from '@mysten/sui.js';
const keypair = new Ed25519Keypair();
const signer = new RawSigner(
keypair,
new JsonRpcProvider('https://gateway.devnet.sui.io:9000/')
);
const txn = await signer.transferCoin({
signer: keypair.getPublicKey().toSuiAddress(),
objectId: '0x5015b016ab570df14c87649eda918e09e5cc61e0',
gasPayment: '0x0a8c2a0fd59bf41678b2e22c3dd2b84425fb3673',
gasBudget: 10000,
recipient: '0xBFF6CCC8707AA517B4F1B95750A2A8C666012DF3',
});
To sign a raw message:
TODO