Skip to main content

Contract Instance sub-class

This sub-class allows users to get the contract instance of specific smart contracts of the LSD network. This turns out to be useful when a function from one of the smart contracts is not exposed in Wizard SDK directly. For a user to use this sub-class, it is necessary to initialize the Wizard SDK with the signer instance.

Contracts exposed via the sub-class

  • lsdnFactory: LSDN factory (used to deploy a new LSD Network)
  • liquidStakingManager: Liquid staking manager contract of the respective LSD
  • savETHVault: Protected Staking Pool smart contract
  • feesAndMevPool: Fees and MEV pool contract of the LSD
  • giantSavETHPool: Giant Protected Staking Pool smart contract
  • giantFeesAndMevPool: Giant Fees and MEV pool smart contract
  • syndicate: Syndicate contract of the respective LSD
  • smartWallet: Smart wallet contract generated for the node operator
  • smartWalletNamingRegistry: Registry contract used to assign names to smart wallet
  • dETH: dETH contract
  • erc20: Contract instance of a general ERC20 contract
  • frenDelegationBribeVault
  • rageQuitAssistant: Rage quit assistant contract deployed for every BLS public key

Getting the contract instances

  • LSDN Factory
const contract = (await wizard.contractInstance).lsdnFactory();
  • Liquid Staking Manager
const contract = (await wizard.contractInstance).liquidStakingManager(LIQUID_STAKING_MANAGER_ADDRESS);
  • Protected Staking Pool
const contract = (await wizard.contractInstance).savETHVault(PROTECTED_STAKING_POOL_ADDRESS);
  • MEV Staking Pool
const contract = (await wizard.contractInstance).feesAndMevPool(FEES_AND_MEV_POOL_ADDRESS);
  • Giant Protected Staking Pool
const contract = (await wizard.contractInstance).giantSavETHPool();
  • Giant MEV Staking Pool
const contract = (await wizard.contractInstance).giantFeesAndMevPool();
  • Syndicate contract
const contract = (await wizard.contractInstance).syndicate(SYNDICATE_ADDRESS);
  • Smart wallet contract
const contract = (await wizard.contractInstance).smartWallet(SMART_WALLET_ADDRESS);
  • Smart wallet naming registry
const contract = (await wizard.contractInstance).smartWalletNamingRegistry();
  • dETH token contract
const contract = (await wizard.contractInstance).dETH();
  • Generic ERC20 contract
const contract = (await wizard.contractInstance).erc20(GENERIC_ERC20_CONTRACT_ADDRESS);
  • Fren delegation bribe vault contract
const contract = (await wizard.contractInstance).frenDelegationBribeVault(FREN_DELEGATION_BRIBE_VAULT_ADDRESS);
  • Rage quit assistant contract
const contract = (await wizard.contractInstance).rageQuitAssistant(RAGE_QUIT_ASSISTANT_ADDRESS);