Vols Finance

Account Registry SDK

Manage main accounts, subaccounts, and trading permissions

The AccountRegistrySDK manages main accounts, subaccounts, and trading permissions on the VOLS protocol.

Write Operations

toggleAccount

Enable or disable a main account for trading.

Signature:

async toggleAccount(main: string, enabled: boolean): Promise<ContractTransactionResponse>

Parameters:

  • main: string - Main account address
  • enabled: boolean - Enable (true) or disable (false) the account

Returns: Promise<ContractTransactionResponse>


toggleMainAccountTrading

Enable or disable trading for a main account.

Signature:

async toggleMainAccountTrading(main: string, enabled: boolean): Promise<ContractTransactionResponse>

Parameters:

  • main: string - Main account address
  • enabled: boolean - Enable (true) or disable (false) trading

Returns: Promise<ContractTransactionResponse>


registerSubaccount

Register a new subaccount under the caller's main account.

Signature:

async registerSubaccount(sub: string): Promise<ContractTransactionResponse>

Parameters:

  • sub: string - Subaccount address to register

Returns: Promise<ContractTransactionResponse>


updateSubaccountPermissions

Update trading and cancellation permissions for a subaccount.

Signature:

async updateSubaccountPermissions(
  main: string,
  sub: string,
  canTrade: boolean,
  canCancel: boolean
): Promise<ContractTransactionResponse>

Parameters:

  • main: string - Main account address
  • sub: string - Subaccount address
  • canTrade: boolean - Allow subaccount to place trades
  • canCancel: boolean - Allow subaccount to cancel orders

Returns: Promise<ContractTransactionResponse>


revokeSubaccountPermissions

Revoke all permissions for a subaccount (sets both canTrade and canCancel to false).

Signature:

async revokeSubaccountPermissions(main: string, sub: string): Promise<ContractTransactionResponse>

Parameters:

  • main: string - Main account address
  • sub: string - Subaccount address

Returns: Promise<ContractTransactionResponse>


Read Operations

isAccountEnabled

Check if a main account is enabled.

Signature:

async isAccountEnabled(main: string, provider?: JsonRpcProvider): Promise<boolean>

Parameters:

  • main: string - Main account address
  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<boolean>


isMainAccountTradingEnabled

Check if trading is enabled for a main account.

Signature:

async isMainAccountTradingEnabled(main: string, provider?: JsonRpcProvider): Promise<boolean>

Parameters:

  • main: string - Main account address
  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<boolean>


isTradingEnabled

Check if trading is enabled for a subaccount.

Signature:

async isTradingEnabled(main: string, sub: string, provider?: JsonRpcProvider): Promise<boolean>

Parameters:

  • main: string - Main account address
  • sub: string - Subaccount address
  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<boolean>


isCancelEnabled

Check if cancellation is enabled for a subaccount.

Signature:

async isCancelEnabled(main: string, sub: string, provider?: JsonRpcProvider): Promise<boolean>

Parameters:

  • main: string - Main account address
  • sub: string - Subaccount address
  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<boolean>


getSubaccountPermissions

Get trading and cancellation permissions for a subaccount.

Signature:

async getSubaccountPermissions(
  main: string,
  sub: string,
  caller: string,
  provider?: JsonRpcProvider
): Promise<{canTrade: boolean, canCancel: boolean}>

Parameters:

  • main: string - Main account address
  • sub: string - Subaccount address
  • caller: string - Caller address
  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<{canTrade: boolean, canCancel: boolean}>


getMainAccount

Get the main account associated with a subaccount.

Signature:

async getMainAccount(sub: string, provider?: JsonRpcProvider): Promise<string>

Parameters:

  • sub: string - Subaccount address
  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<string> - Main account address


getAllSubaccounts

Get all subaccounts for a main account.

Signature:

async getAllSubaccounts(main: string, provider?: JsonRpcProvider): Promise<string[]>

Parameters:

  • main: string - Main account address
  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<string[]> - Array of subaccount addresses


getSubaccountCount

Get the count of subaccounts for a main account.

Signature:

async getSubaccountCount(main: string, provider?: JsonRpcProvider): Promise<number>

Parameters:

  • main: string - Main account address
  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<number>


getSubaccountInfo

Get comprehensive information about a subaccount.

Signature:

async getSubaccountInfo(sub: string, provider?: JsonRpcProvider): Promise<{
  main: string;
  canTrade: boolean;
  canCancel: boolean;
  exists: boolean;
}>

Parameters:

  • sub: string - Subaccount address
  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<{main: string, canTrade: boolean, canCancel: boolean, exists: boolean}>


isMainAccount

Check if an address is registered as a main account.

Signature:

async isMainAccount(addr: string, provider?: JsonRpcProvider): Promise<boolean>

Parameters:

  • addr: string - Address to check
  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<boolean>


isSubaccount

Check if an address is registered as a subaccount.

Signature:

async isSubaccount(addr: string, provider?: JsonRpcProvider): Promise<boolean>

Parameters:

  • addr: string - Address to check
  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<boolean>


getProtocolOwner

Get the protocol owner address.

Signature:

async getProtocolOwner(provider?: JsonRpcProvider): Promise<string>

Parameters:

  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<string> - Protocol owner address


getMainAccountsList

Get list of all whitelisted main accounts.

Signature:

async getMainAccountsList(provider?: JsonRpcProvider): Promise<string[]>

Parameters:

  • provider?: JsonRpcProvider - Optional provider override

Returns: Promise<string[]> - Array of main account addresses

On this page