0.0.4 • Published 3 months ago

overgold v0.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
3 months ago

light client

Использование

Получить сесию из мнемоники

type Session = (mnemonic:string) => SessionResponse;

interface SessionResponse {
    BECH32_PREFIX: string;
    BLOCKCHAIN_URL: string;
    ASSET: string;
    mnemonic: string;
    signer: AccountData;
    account: DirectSecp256k1HdWallet;
    signingClient: SigningStargateClient;
    message: IBuiltinMessagesFactory;
    getKeyPair: (index?: number) => ECPairInterface;
    getAddress: (index?: number) => string;
    toKeyStoreObject: (password: string) => object;
    toKeyStoreString: (password: string) => string;
}

  const session:Session = await lightClient.getSessionFromMnemonic(mnemonic);

Получить адрес из мнемоники

  type Address = (mnemonic:string) => string

  const address:Address = await lightClient.getAccountAddressFromMnemonic(mnemonic);

Получить балансы по адресу

type Balance = (address:string) => BalanceResponse

interface BalanceResponse {
  ovg: {
    amount: number;
  };
  stovg: {
    amount: number;
    stakeAmount: number;
    sellAmount: number;
  };
}

  const balance:Balance = await lightClient.getAccountAllBalance(address);

Валидация адреса

  type MnemonicIsValid = (address:string) => boolean

  const accountAddressIsValid:boolean = await lightClient.accountAddressIsValid(address);

Валидация мнемоники

  type MnemonicIsValid = (mnemonic:string) => boolean

  const mnemonicIsValid:MnemonicIsValid = await lightClient.mnemonicIsValid(mnemonic);

Подписать и отправить трансфер по отправке ovg

interface MakeTransactionSendProps {
  mnemonic: string;
  toAddress: string;
  amount: string;
  denom?: string; //default 'ovg'
  memo?: string; //default ''
  isSimulate?: boolean; //default false
}

type SendOVG = (payload : MakeTransactionSendProps) => Promise<{
    data: null;
    error: {
        status: number;
        message: string;
        statusText?: undefined;
    };
} | {
    data: null;
    error: {
        status: number;
        statusText: string;
        message?: undefined;
    };
} | {
    data: {
        gas: number;
        hash: string | null;
    };
    error: null;
}>

const sendOVG:SendOVG = await lightClient.makeTransactionSendOVG({
    mnemonic,
    toAddress,
    amount,
    });

Подписать трансфер по отправке stovg (user-to-stake). Пользователь может отправить только свободный стейк (тот что стоит на выкупе - не может).

interface MakeTransactionFromUserProps {
  mnemonic: string;
  amount: string;
  memo?: string; //default ''
  isSimulate?: boolean; //default false
}

type SendStOVG = (payload : MakeTransactionFromUserProps) => Promise<{
    data: null;
    error: {
        status: number;
        message: string;
        statusText?: undefined;
    };
} | {
    data: null;
    error: {
        status: number;
        statusText: string;
        message?: undefined;
    };
} | {
    data: {
        gas: number;
        hash: string | null;
    };
    error: null;
}>

  const sendStOVG:SendStOVG = await lightClient.makeTransactionFromUser({
    mnemonic,
    amount,
  })