PHP WebShell

Текущая директория: /opt/BitGoJS/modules/sdk-coin-sui/src/lib

Просмотр файла: iface.ts

import {
  TransactionExplanation as BaseTransactionExplanation,
  TransactionType as BitGoTransactionType,
} from '@bitgo/sdk-core';
import BigNumber from 'bignumber.js';
import {
  CallArg,
  GasData,
  ProgrammableTransaction,
  SuiAddress,
  SuiObjectRef,
  TransactionExpiration,
} from './mystenlab/types';
import { TransactionBlockInput, TransactionType } from './mystenlab/builder';

export enum SuiTransactionType {
  Transfer = 'Transfer',
  AddStake = 'AddStake',
  WithdrawStake = 'WithdrawStake',
  CustomTx = 'CustomTx',
  TokenTransfer = 'TokenTransfer',
  WalrusStakeWithPool = 'WalrusStakeWithPool',
  WalrusRequestWithdrawStake = 'WalrusRequestWithdrawStake',
  WalrusWithdrawStake = 'WalrusWithdrawStake',
}

export interface TransactionExplanation extends BaseTransactionExplanation {
  type: BitGoTransactionType;
}

export type SuiProgrammableTransaction =
  | TransferProgrammableTransaction
  | StakingProgrammableTransaction
  | UnstakingProgrammableTransaction
  | CustomProgrammableTransaction
  | TokenTransferProgrammableTransaction
  | WalrusStakingProgrammableTransaction
  | WalrusWithdrawStakeProgrammableTransaction;

export interface TxData {
  id?: string;
  sender: SuiAddress;
  expiration: TransactionExpiration;
  gasData: GasData;
  kind: {
    ProgrammableTransaction: SuiProgrammableTransaction;
  };
  inputObjects?: SuiObjectRef[];
}

export type TransferProgrammableTransaction =
  | ProgrammableTransaction
  | {
      inputs: CallArg[] | TransactionBlockInput[];
      transactions: TransactionType[];
    };

export type StakingProgrammableTransaction =
  | ProgrammableTransaction
  | {
      inputs: CallArg[] | TransactionBlockInput[];
      transactions: TransactionType[];
    };

export type UnstakingProgrammableTransaction =
  | ProgrammableTransaction
  | {
      inputs: CallArg[] | TransactionBlockInput[];
      transactions: TransactionType[];
    };

export type CustomProgrammableTransaction =
  | ProgrammableTransaction
  | {
      inputs: CallArg[] | TransactionBlockInput[];
      transactions: TransactionType[];
    };

export type TokenTransferProgrammableTransaction =
  | ProgrammableTransaction
  | {
      inputs: CallArg[] | TransactionBlockInput[];
      transactions: TransactionType[];
    };

export type WalrusStakingProgrammableTransaction =
  | ProgrammableTransaction
  | {
      inputs: CallArg[] | TransactionBlockInput[];
      transactions: TransactionType[];
    };

export type WalrusWithdrawStakeProgrammableTransaction =
  | ProgrammableTransaction
  | {
      inputs: CallArg[] | TransactionBlockInput[];
      transactions: TransactionType[];
    };

export interface SuiTransaction<T = SuiProgrammableTransaction> {
  id?: string;
  type: SuiTransactionType;
  sender: string;
  tx: T;
  gasData: GasData;
}

export interface RequestAddStake {
  amount: number;
  validatorAddress: SuiAddress;
}

export interface RequestWithdrawStakedSui {
  amount?: number;
  stakedSui: SuiObjectRef;
}

export interface RequestWalrusStakeWithPool {
  amount: number;
  validatorAddress: SuiAddress;
}

export interface RequestWalrusWithdrawStake {
  amount?: number;
  stakedWal: SuiObjectRef;
}

/**
 * Method names for the transaction method. Names change based on the type of transaction e.g 'request_add_delegation_mul_coin' for the staking transaction
 */
export enum MethodNames {
  /**
   * Add stake to a validator's staking pool.
   *
   * @see https://github.com/MystenLabs/sui/blob/main/crates/sui-framework/docs/sui_system.md#function-request_add_stake
   */
  RequestAddStake = '::sui_system::request_add_stake',
  /**
   * Withdraw some portion of a stake from a validator's staking pool.
   *
   * @see https://github.com/MystenLabs/sui/blob/main/crates/sui-framework/docs/sui_system.md#function-request_withdraw_stake
   */
  RequestWithdrawStake = '::sui_system::request_withdraw_stake',
  /**
   * Split StakedSui self to two parts, one with principal split_amount, and the remaining principal is left in self.
   *
   * @see https://github.com/MystenLabs/sui/blob/main/crates/sui-framework/docs/staking_pool.md#0x3_staking_pool_split
   */
  StakingPoolSplit = '::staking_pool::split',
  /**
   * Transfer ownership of obj to recipient.
   *
   * @see https://github.com/MystenLabs/sui/blob/main/crates/sui-framework/docs/transfer.md#function-public_transfer
   */
  PublicTransfer = '::transfer::public_transfer',
  /**
   * Walrus stake with pool.
   *
   * @see https://github.com/MystenLabs/walrus-docs/blob/8ba15d67d7ed0e728077e1600866fddd46fd113b/contracts/walrus/sources/staking.move#L289
   */
  WalrusStakeWithPool = '::staking::stake_with_pool',
  /**
   * @see https://github.com/MystenLabs/walrus-docs/blob/9307e66df0ea3f6555cdef78d46aefa62737e216/contracts/walrus/sources/staking.move#L221
   */
  WalrusRequestWithdrawStake = '::staking::request_withdraw_stake',
  /**
   * @see https://github.com/MystenLabs/walrus-docs/blob/9307e66df0ea3f6555cdef78d46aefa62737e216/contracts/walrus/sources/staking.move#L231
   */
  WalrusWithdrawStake = '::staking::withdraw_stake',
  /**
   * @see https://github.com/MystenLabs/walrus-docs/blob/9307e66df0ea3f6555cdef78d46aefa62737e216/contracts/walrus/sources/staking/staked_wal.move#L143
   */
  WalrusSplitStakedWal = '::staked_wal::split',
}

export interface SuiObjectInfo extends SuiObjectRef {
  /** balance */
  balance: BigNumber;
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!