0.2.0-alpha.8 • Published 11 months ago

@solworks/sujiko-sdk v0.2.0-alpha.8

Weekly downloads
-
License
ISC
Repository
-
Last release
11 months ago

Sujiko v1 Client Library

TypeScript client library for interacting with Sujiko v1.

Installation

Using npm:

npm install @solworks/sujiko-sdk

Using yarn:

yarn add @solworks/sujiko-sdk

Usage

  1. Initialise SDK
import { SDK, Decimal, Side } from "@solworks/sujiko-sdk";
import * as anchor from "@coral-xyz/anchor";
// set anchor provider
const provider = anchor.AnchorProvider.env();
// lazy build sdk
let sdk = await SDK.build({
    connection: provider.connection,
    wallet: provider.wallet
    // devnet: true             // use devnet program id
});
  1. Get markets
// fetch clearing house and markets list
let ch = await sdk.getClearingHouse();
let marketsList = await sdk.getMarketsList();
// pretty format clearing house
let clearingHouse = sdk.prettyFormat(
    ch, 
    marketsList,
    // true                     // excludes buffers
);
console.log(clearingHouse);
  1. Create user if not exists
// update with mint of Sujiko Warrior owned by user
let mint = new PublicKey("...");

// check if user exists
let user = await sdk.getUser(provider.wallet.publicKey);
// create user if not exists
if (!user) {
    await sdk.initializeUser(
        provider.wallet.publicKey,
        mint
    );
}
// get user
user = await sdk.getUser(provider.wallet.publicKey);
// pretty format user
let prettyUser = sdk.prettyFormatUser({ user: user!, filtered: true });
console.log(prettyUser);
  1. Deposit all collateral
// only usdc supported (collateralIndex = 0)
let collateralIndex = 0;

// get token account and balance
let ta = sdk.getTokenAccount(provider.wallet.publicKey, marketsList.collaterals[collateralIndex].mint);
let balance = await sdk.connection.getTokenAccountBalance(ta);

// deposit all
let toDeposit = Decimal.newScaled(balance.value.amount, marketsList.collaterals[collateralIndex].mintScale);
const sig = await sdk.deposit({
    owner: provider.wallet.publicKey,       // owner must = signer
    amount: toDeposit,                      // amount to deposit
    collateralIndex: collateralIndex,       // collateral index
    fromUserTokenAccount: ta,               // from user token account
});
console.log("sig", sig);
  1. Place trade
// place trade in MADSLADS-PERP market for 1 contract long
// NOTE: order is executed asynchronously + takes >=5 slots before being executed
const market = marketsList.markets.find(m => m.name === "MADSLADS-PERP")!;
const size = 1;                             // 1 contract (i.e. 1 MADSLADS-PERP)
const sig = await sdk.createOrder({
    owner: provider.wallet.publicKey,       // owner must = signer
    marketIndex: market.index,              // alternatively use 0 for MADSLADS-PERP
    orderType: OrderType.Market,            // only Market or TriggerMarket supported currently (case sensitive)
    side: Side.Buy,                         // one of Buy or Sell (case sensitive)
    size: Decimal.fromSize(size)            // size of order, do not scale when using fromSize
});
console.log("sig", sig);
0.2.0-alpha.8

11 months ago

0.2.0-alpha.7

11 months ago

0.2.0-alpha.2

1 year ago

0.2.0-alpha.1

1 year ago

0.2.0-alpha.4

11 months ago

0.2.0-alpha.3

11 months ago

0.2.0-alpha.6

11 months ago

0.2.0-alpha.5

11 months ago

0.2.0-alpha.0

1 year ago

0.1.43-dev.12

1 year ago

0.1.43-dev.11

1 year ago

0.1.43-dev.10

1 year ago

0.1.43-dev.8

1 year ago

0.1.43-dev.9

1 year ago

0.1.43-dev.4

1 year ago

0.1.43-dev.5

1 year ago

0.1.43-dev.6

1 year ago

0.1.43-dev.7

1 year ago

0.1.43-dev.2

1 year ago

0.1.43-dev.3

1 year ago

0.1.43-dev.1

1 year ago

0.1.43-dev

1 year ago

0.1.41

1 year ago

0.1.42

1 year ago

0.1.40

1 year ago

0.1.38

1 year ago

0.1.39

1 year ago

0.1.37

1 year ago

0.1.35

1 year ago

0.1.36

1 year ago

0.1.31

1 year ago

0.1.32

1 year ago

0.1.33

1 year ago

0.1.34

1 year ago

0.1.10

2 years ago

0.1.11

2 years ago

0.1.12

2 years ago

0.1.13

2 years ago

0.1.14

2 years ago

0.1.15

2 years ago

0.1.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.9

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.30

2 years ago

0.0.9-rc2

2 years ago

0.0.9-rc1

2 years ago

0.1.27

2 years ago

0.0.15

2 years ago

0.1.28

2 years ago

0.0.16

2 years ago

0.1.29

2 years ago

0.1.20

2 years ago

0.1.21

2 years ago

0.1.22

2 years ago

0.0.10

2 years ago

0.1.23

2 years ago

0.0.11

2 years ago

0.1.24

2 years ago

0.0.12

2 years ago

0.1.25

2 years ago

0.0.13

2 years ago

0.1.26

2 years ago

0.0.14

2 years ago

0.0.8-psi.r2

2 years ago

0.0.8-psi.r1

2 years ago

0.0.8-psi.r4

2 years ago

0.0.8-psi.r3

2 years ago

0.0.8-psi.r6

2 years ago

0.0.8-psi.r5

2 years ago

0.1.16

2 years ago

0.1.17

2 years ago

0.1.18

2 years ago

0.1.19

2 years ago

0.0.8-lambda

2 years ago

0.0.8-mu

2 years ago

0.0.8-tau

2 years ago

0.0.8-chi

2 years ago

0.0.8-kappa

2 years ago

0.0.8-iota

2 years ago

0.0.8-zeta

2 years ago

0.0.8-eta

2 years ago

0.0.8-omicron

2 years ago

0.0.8-sigma

2 years ago

0.0.8-nu

2 years ago

0.0.8-psi

2 years ago

0.0.8-theta

2 years ago

0.0.8-upsilon

2 years ago

0.0.8-rho

2 years ago

0.0.8-pi

2 years ago

0.0.8-phi

2 years ago

0.0.8-xi

2 years ago

0.0.8-epsilon

2 years ago

0.0.8-delta

2 years ago

0.0.8-gamma

2 years ago

0.0.8-beta

2 years ago

0.0.8-alpha

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago