Skip to main content

ZeroQuantClient

The main client class for interacting with ZeroQuant vaults.

Constructor

const client = new ZeroQuantClient(provider, config);

Parameters

ParameterTypeDescription
providerProviderethers.js provider
config.factoryAddressstringFactory contract address
config.permissionManagerAddressstringPermission manager address

Methods

connect(signer)

Connect a signer to the client.

await client.connect(signer);

createVault(salt)

Create a new vault with deterministic address.

const vault = await client.createVault(42);
console.log(vault.address);

connectVault(address)

Connect to an existing vault.

await client.connectVault('0x...');

execute(params)

Execute a single operation.

const tx = await client.execute({
target: '0x...',
value: 0n,
data: '0x...',
});

executeBatch(params)

Execute multiple operations atomically.

const tx = await client.executeBatch({
targets: ['0x...', '0x...'],
values: [0n, 0n],
calldatas: ['0x...', '0x...'],
});

getBalance()

Get vault ETH balance.

const balance = await client.getBalance();

getAccountAddress(owner, salt)

Predict vault address before creation.

const address = await client.getAccountAddress(ownerAddress, 42);