Skip to content

AlphaFiTech/stsui-sdk

Repository files navigation

stSUI SDK

Installation

npm i @stsui-sdk

v0.1.x — GraphQL migration

Internal Sui reads have moved from JSON-RPC to GraphQL. The public class/function APIs (LST, Admin, Utils, Events, mint, redeem, refresh, etc.) are unchanged. The only breaking type-shape change affects direct consumers of LiquidStakingInfo / Meta, which are now flat (no content.fields.* wrapping). The legacy JSON-RPC helpers (getMultiObjects, getSuiClient, etc.) keep their original shapes and are marked @deprecated; a new GraphQL-native multiGetObjectsGraphql(ids) helper is available for new code. See STSUI_GRAPHQL_MIGRATION.md for the field-by-field mapping. Override the GraphQL endpoint via the new setGraphQLUrl(url) helper. By default, GraphQL follows the active SDK config network (production -> mainnet GraphQL, testing -> testnet GraphQL).

How to create your own liquid staking token

  • Write a simple contract to create a coin that will also represent your liquid staking token, stSUI for example.
    • Upon publishing the contract, you will receive your coin's treasury cap and get your coin's sui move type ({packageid}::{module name}::{coin struct name}).
  • To turn your coin into a liquid staking token using our framework:
    • You need to initialize LstParams first.
      const lstParams: LstParams = {
        lstCointype:
          "0xabcd2358cebfdf4ee29534f906cbb36a78dfaaa256e7d9ddb7e789e2dd8abcd::demo::DEMO", // your LST's move type
        treasuryCap:
          "0xabcdc88f4ac2eeeb5ac13917c4d3ce147228b62295d51dff4950abd3bb4cabcd", // object id of your treasury cap
      };
    • Instantiate Admin class
      const admin = new Admin(lstParams);
    • Call the createLst method in the Admin class. refer to this for information on the arguments to createLst method.
      const txb = await admin.createLst(0, 1, 600, 10000, address);
      await suiClient
        .signAndExecuteTransaction({
          signer: keypair,
          transaction: txb,
          requestType: "WaitForLocalExecution",
          options: {
            showEffects: true,
            showBalanceChanges: true,
            showObjectChanges: true,
          },
        })
        .then((res) => {
          console.log(JSON.stringify(res, null, 2));
        })
        .catch((error) => {
          console.error(error);
        });
    • LiquidStakingInfo shared object will be created and will be further used to call every other function corresponding to your LST.
    • Admin cap and collection fee cap will be transferred to the address provided in the createLst method.
    • These caps will be used to call other admin functions like setValidators, collectFee and updateFee.

API Reference

Admin

Refer to Admin class for admin specific operations specific to your custom liquid staking token.

LST

Refer to LST class for standard LST operations

Utils

Refer to utils class for common utility functions

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors