API Reference

Add/Remove Sub Account

The method Set Sub Account allows users to whitelist or delist a wallet address as a sub-account to their wallet address.

You can whitelist, and delist, sub-accounts for each of the Markets, using this method. Only the whitelisted sub-accounts and the parent can perform trade actions on behalf of the parent.

Sub-accounts will only have permission to perform trade actions on the selected Markets for which they have been whitelisted by the Parent.

The method takes the following input params:

  • Public Address: The address of the sub-account to whitelist/delist
  • Market Symbol: Symbol of the market in format "{ASSET_SYMBOL}-PERP" eg: "BTC-PERP", "ETH-PERP"
  • Status: Boolean set to True to whitelist, and False to delist

The response will have the following schema:

type ResponseSchema = { ok: boolean; // boolean indicating contract call success/failure data: any; // transaction data message: string; // success / error message code?: number | string; // status code stack?: string; // error stack };

Example

import { Networks, BluefinClient } from "@bluefin-exchange/bluefin-v2-client"; import { TEST_ACCT_KEY, TEST_SUB_ACCT_KEY } from "./config"; async function main() { // account keys const parentAccountKey ="" || TEST_ACCT_KEY; const childAccountKey = "" || TEST_SUB_ACCT_KEY; // initialize the parent account client const clientParent = new BluefinClient( true, Networks.TESTNET_SUI, parentAccountKey, "ED25519" ); await clientParent.init(); // initialize the child account client const clientChild = new BluefinClient( true, Networks.TESTNET_SUI, childAccountKey, "ED25519" ); await clientChild.init(); // Add child account as subaccount const resp1 = await clientParent.setSubAccount( clientChild.getPublicAddress(), true ); console.log(resp1); // Remove child account as subaccount const resp2 = await clientParent.setSubAccount( clientChild.getPublicAddress(), false ); console.log(resp2); } main().then().catch(console.warn);
from config import TEST_ACCT_KEY, TEST_SUB_ACCT_KEY, TEST_NETWORK from bluefin_v2_client import ( BluefinClient, Networks, ) import asyncio async def main(): # initialize the parent account client clientParent = BluefinClient(True, Networks[TEST_NETWORK], TEST_ACCT_KEY) await clientParent.init(True) # initialize the child account client clientChild = BluefinClient(True, Networks[TEST_NETWORK], TEST_SUB_ACCT_KEY) await clientChild.init(True) print("Parent: ", clientParent.get_public_address()) print("Child: ", clientChild.get_public_address()) # add child account as subaccount status = await clientParent.update_sub_account( clientChild.get_public_address(), True ) print("Sub account added: {}\n".format(status)) # remove child account as subaccount status = await clientParent.update_sub_account( clientChild.get_public_address(), False ) print("Sub account removed: {}\n".format(status)) if __name__ == "__main__": loop = asyncio.new_event_loop() loop.run_until_complete(main()) loop.close()