Skip to main content

Types

Types of Sui SDK

https://github.com/MystenLabs/sui/tree/main/sdk/typescript/src/types

IDefaultWallet

export interface IDefaultWallet {
name: string; // wallet name
iconUrl: string; // wallet icon url (external url or data url)
downloadUrl: {
browserExtension?: string; // provide download link if this wallet is not installed
};
}

example for customized defaultWallet item:

import IDefaultWallet from "@suiet/wallet-kit";

const myWallet: IDefaultWallet = {
name: "myWallet",
iconUrl: "external url or data url",
downloadUrl: {
browserExtension: "chrome extension store url...",
},
};

WalletAccount

export interface WalletAccount {
/** Address of the account, corresponding with the public key. */
readonly address: string;

/** Public key of the account, corresponding with the secret key to sign, encrypt, or decrypt using. */
readonly publicKey: Uint8Array;

/** Chains supported by the account. */
readonly chains: IdentifierArray;

/** Features supported by the account. */
readonly features: IdentifierArray;

/** Optional user-friendly descriptive label or name for the account, to be displayed by apps. */
readonly label?: string;

/** Optional user-friendly icon for the account, to be displayed by apps. */
readonly icon?: WalletIcon;
}

IWalletAdapter

https://github.com/suiet/wallet-kit/blob/main/packages/kit/src/types/wallet.ts#L39

Chain

Definition of chain's structure (aka Network for Sui Wallet)

export type Chain = {
id: string;
name: string;
rpcUrl: string;
};

Default constants:

export const SuiDevnetChain: Chain = {
id: "sui:devnet",
name: "Sui Devnet",
rpcUrl: "https://fullnode.devnet.sui.io/",
};
export const SuiTestnetChain: Chain = {
id: "sui:testnet",
name: "Sui Testnet",
rpcUrl: "https://fullnode.testnet.sui.io/",
};
export const SuiMainnetChain: Chain = {
id: "sui:testnet",
name: "Sui Testnet",
rpcUrl: "https://rpc.mainnet.sui.io/",
};

export const UnknownChain: Chain = {
id: "unknown:unknown",
name: "Unknown Network",
rpcUrl: "",
};

export const DefaultChains = [SuiDevnetChain, SuiTestnetChain];

Error Types

type BaseError = {
message: string;
code: ErrorCode;
details?: Record<String, any>;
};
type KitError = BaseError; // errors from kit internal logics
type WalletError = BaseError; // erros from third-party wallets

Error Codes

enum ErrorCode {
UNKNOWN_ERROR = "UNKNOWN_ERROR",
KIT__UNKNOWN_ERROR = "KIT.UNKNOWN_ERROR",
WALLET__UNKNOWN_ERROR = "WALLET.UNKNOWN_ERROR",
WALLET__CONNECT_ERROR = "WALLET.CONNECT_ERROR",
WALLET__DISCONNECT_ERROR = "WALLET.DISCONNECT_ERROR",
WALLET__SIGN_TX_ERROR = "WALLET.SIGN_TX_ERROR",
WALLET__SIGN_MSG_ERROR = "WALLET.SIGN_MSG_ERROR",
WALLET__LISTEN_TO_EVENT_ERROR = "WALLET.LISTEN_TO_EVENT_ERROR",
WALLET__METHOD_NOT_IMPLEMENTED_ERROR = "WALLET.METHOD_NOT_IMPLEMENTED_ERROR",
}