EthosConnect API reference

Types

EthosConnect ships with full Typescript support for types, interfaces, and enums.

Types

SuiClient

EthosConfiguration

interface EthosConfiguration {
  apiKey?: string
  walletAppUrl?: string
  chain?: Chain
  network?: string
  hideEmailSignIn?: boolean
  hideWalletSignIn?: boolean
  preferredWallets?: string[]
  redirectTo?: string
}

Chain

enum Chain {
  SUI_DEVNET = 'sui:devnet',
  SUI_TESTNET = 'sui:testnet',
  SUI_CUSTOM = 'sui:custom',
}

EthosConnectStatus

enum EthosConnectStatus = {
    Loading = "loading",
    NoConnection = "no_connection",
    Connected = "connected"
}

AddressWidgetButtons

enum AddressWidgetButtons {
    CopyWalletAddress = "copy_wallet_address",
    WalletExplorer = "wallet_explorer",
    Logout = "logout"
}

Wallet

interface Wallet = {
    address: SuiAddress,
    contents: WalletContents,
    type: SignerType,
    name?: string,
    icon?: string,
    getAddress: () => Promise<SuiAddress | null>
    accounts: readonly WalletAccount[],
    currentAccount: WalletAccount | null,
    signAndExecuteTransactionBlock: (input: EthosSignAndExecuteTransactionBlockInput) => Promise<SuiTransactionBlockResponse>,
    requestPreapproval: (preApproval: Preapproval) => Promise<boolean>,
    signMessage: (input: EthosSignMessageInput) => Promise<SuiSignMessageOutput>,
    disconnect: () => void
}

WalletContents

interface WalletContents = {
  suiBalance: bigint,
  coins: Coin[],
  nfts: Nft[],
  objects: SuiObject[]
}

Preapproval

interface Preapproval {
  module: string;
  function: string;
  objectId: ObjectId;
  description: string;
  totalGasLimit: number;
  perTransactionGasLimit: number;
  maxTransactionCount: number;
}

AddressWidgetProps

interface AddressWidgetProps {
  includeMenu?: boolean;
  buttonColor?: string;
  extraButtons?: ReactNode[];
}
Previous
Sign in options