@alphafi/stsui-sdk - v0.0.21

stSUI SDK

npm i @stsui-sdk
  • 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.

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

Refer to LST class for standard LST operations

Refer to utils class for common utility functions