UNPKG

@byzantine/vault-sdk

Version:

Byzantine Vault SDK for creating and managing vaults on Ethereum for restaking strategies

1,158 lines (1,157 loc) 44.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BYZANTINE_FACTORY_ABI = void 0; exports.BYZANTINE_FACTORY_ABI = [ { type: "constructor", inputs: [ { name: "_strategyManager", type: "address", internalType: "contract IStrategyManager", }, { name: "_strategyFactory", type: "address", internalType: "contract IStrategyFactory", }, { name: "_burnerRouterFactory", type: "address", internalType: "contract IBurnerRouterFactory", }, { name: "_vaultConfigurator", type: "address", internalType: "contract IVaultConfigurator", }, { name: "_vaultVersionControl", type: "address", internalType: "contract IVaultVersionControl", }, { name: "_stakingOracle", type: "address", internalType: "contract IStakingOracle", }, ], stateMutability: "nonpayable", }, { type: "function", name: "burnerRouterFactory", inputs: [], outputs: [ { name: "", type: "address", internalType: "contract IBurnerRouterFactory", }, ], stateMutability: "view", }, { type: "function", name: "createEigenByzVault", inputs: [ { name: "_byzVaultParams", type: "tuple", internalType: "struct IByzantineFactory.ByzVaultParams", components: [ { name: "token", type: "address", internalType: "contract IERC20", }, { name: "roleManager", type: "address", internalType: "address", }, { name: "versionManager", type: "address", internalType: "address", }, { name: "depositWhitelistManager", type: "address", internalType: "address", }, { name: "depositLimitManager", type: "address", internalType: "address", }, { name: "curatorFeeClaimer", type: "address", internalType: "address", }, { name: "curatorFeeClaimerRoleAdmin", type: "address", internalType: "address", }, { name: "depositLimit", type: "uint256", internalType: "uint256", }, { name: "curatorFee", type: "uint16", internalType: "uint16", }, { name: "isDepositLimit", type: "bool", internalType: "bool", }, { name: "isPrivateVault", type: "bool", internalType: "bool", }, { name: "isTokenized", type: "bool", internalType: "bool" }, { name: "name", type: "string", internalType: "string" }, { name: "symbol", type: "string", internalType: "string" }, { name: "metadataURI", type: "string", internalType: "string", }, ], }, { name: "_eigenParams", type: "tuple", internalType: "struct IByzantineFactory.EigenParams", components: [ { name: "delegationSetRoleHolder", type: "address", internalType: "address", }, { name: "operator", type: "address", internalType: "address", }, { name: "approverSignatureAndExpiry", type: "tuple", internalType: "struct ISignatureUtilsMixinTypes.SignatureWithExpiry", components: [ { name: "signature", type: "bytes", internalType: "bytes", }, { name: "expiry", type: "uint256", internalType: "uint256", }, ], }, { name: "approverSalt", type: "bytes32", internalType: "bytes32", }, ], }, ], outputs: [ { name: "eigenByzVault", type: "address", internalType: "address", }, ], stateMutability: "nonpayable", }, { type: "function", name: "createEigenByzVault", inputs: [ { name: "_nativeByzVaultParams", type: "tuple", internalType: "struct IByzantineFactory.NativeByzVaultParams", components: [ { name: "byzVaultParams", type: "tuple", internalType: "struct IByzantineFactory.ByzVaultParams", components: [ { name: "token", type: "address", internalType: "contract IERC20", }, { name: "roleManager", type: "address", internalType: "address", }, { name: "versionManager", type: "address", internalType: "address", }, { name: "depositWhitelistManager", type: "address", internalType: "address", }, { name: "depositLimitManager", type: "address", internalType: "address", }, { name: "curatorFeeClaimer", type: "address", internalType: "address", }, { name: "curatorFeeClaimerRoleAdmin", type: "address", internalType: "address", }, { name: "depositLimit", type: "uint256", internalType: "uint256", }, { name: "curatorFee", type: "uint16", internalType: "uint16", }, { name: "isDepositLimit", type: "bool", internalType: "bool", }, { name: "isPrivateVault", type: "bool", internalType: "bool", }, { name: "isTokenized", type: "bool", internalType: "bool", }, { name: "name", type: "string", internalType: "string" }, { name: "symbol", type: "string", internalType: "string", }, { name: "metadataURI", type: "string", internalType: "string", }, ], }, { name: "operatorId", type: "bytes32", internalType: "bytes32", }, { name: "soloStakingFee", type: "uint16", internalType: "uint16", }, { name: "validatorManagers", type: "address[]", internalType: "address[]", }, ], }, { name: "_eigenParams", type: "tuple", internalType: "struct IByzantineFactory.EigenParams", components: [ { name: "delegationSetRoleHolder", type: "address", internalType: "address", }, { name: "operator", type: "address", internalType: "address", }, { name: "approverSignatureAndExpiry", type: "tuple", internalType: "struct ISignatureUtilsMixinTypes.SignatureWithExpiry", components: [ { name: "signature", type: "bytes", internalType: "bytes", }, { name: "expiry", type: "uint256", internalType: "uint256", }, ], }, { name: "approverSalt", type: "bytes32", internalType: "bytes32", }, ], }, { name: "_eigenPodParams", type: "tuple", internalType: "struct IByzantineFactory.EigenPodParams", components: [ { name: "eigenPodManager", type: "address", internalType: "address", }, ], }, ], outputs: [ { name: "eigenByzVault", type: "address", internalType: "address", }, ], stateMutability: "nonpayable", }, { type: "function", name: "createSuperERC20Vault", inputs: [ { name: "_params", type: "tuple", internalType: "struct ISuperERC20Vault.SuperVaultParams", components: [ { name: "byzVaultParams", type: "tuple", internalType: "struct IByzantineFactory.ByzVaultParams", components: [ { name: "token", type: "address", internalType: "contract IERC20", }, { name: "roleManager", type: "address", internalType: "address", }, { name: "versionManager", type: "address", internalType: "address", }, { name: "depositWhitelistManager", type: "address", internalType: "address", }, { name: "depositLimitManager", type: "address", internalType: "address", }, { name: "curatorFeeClaimer", type: "address", internalType: "address", }, { name: "curatorFeeClaimerRoleAdmin", type: "address", internalType: "address", }, { name: "depositLimit", type: "uint256", internalType: "uint256", }, { name: "curatorFee", type: "uint16", internalType: "uint16", }, { name: "isDepositLimit", type: "bool", internalType: "bool", }, { name: "isPrivateVault", type: "bool", internalType: "bool", }, { name: "isTokenized", type: "bool", internalType: "bool", }, { name: "name", type: "string", internalType: "string" }, { name: "symbol", type: "string", internalType: "string", }, { name: "metadataURI", type: "string", internalType: "string", }, ], }, { name: "symRatio", type: "uint256", internalType: "uint256", }, { name: "eigenParams", type: "tuple", internalType: "struct IByzantineFactory.EigenParams", components: [ { name: "delegationSetRoleHolder", type: "address", internalType: "address", }, { name: "operator", type: "address", internalType: "address", }, { name: "approverSignatureAndExpiry", type: "tuple", internalType: "struct ISignatureUtilsMixinTypes.SignatureWithExpiry", components: [ { name: "signature", type: "bytes", internalType: "bytes", }, { name: "expiry", type: "uint256", internalType: "uint256", }, ], }, { name: "approverSalt", type: "bytes32", internalType: "bytes32", }, ], }, { name: "symParams", type: "tuple", internalType: "struct IByzantineFactory.SymParams", components: [ { name: "burnerParams", type: "tuple", internalType: "struct IByzantineFactory.BurnerParams", components: [ { name: "owner", type: "address", internalType: "address", }, { name: "delay", type: "uint48", internalType: "uint48", }, { name: "globalReceiver", type: "address", internalType: "address", }, { name: "networkReceivers", type: "tuple[]", internalType: "struct IBurnerRouter.NetworkReceiver[]", components: [ { name: "network", type: "address", internalType: "address", }, { name: "receiver", type: "address", internalType: "address", }, ], }, { name: "operatorNetworkReceivers", type: "tuple[]", internalType: "struct IBurnerRouter.OperatorNetworkReceiver[]", components: [ { name: "network", type: "address", internalType: "address", }, { name: "operator", type: "address", internalType: "address", }, { name: "receiver", type: "address", internalType: "address", }, ], }, ], }, { name: "vaultParams", type: "tuple", internalType: "struct IByzantineFactory.VaultParams", components: [ { name: "version", type: "uint64", internalType: "uint64", }, { name: "epochDuration", type: "uint48", internalType: "uint48", }, ], }, { name: "delegatorParams", type: "tuple", internalType: "struct IByzantineFactory.DelegatorParams", components: [ { name: "delegatorType", type: "uint8", internalType: "enum IByzantineFactory.DelegatorType", }, { name: "hook", type: "address", internalType: "address", }, { name: "hookSetRoleHolder", type: "address", internalType: "address", }, { name: "networkLimitSetRoleHolders", type: "address[]", internalType: "address[]", }, { name: "operatorNetworkLimitOrSharesSetRoleHolders", type: "address[]", internalType: "address[]", }, { name: "operator", type: "address", internalType: "address", }, { name: "network", type: "address", internalType: "address", }, ], }, { name: "slasherParams", type: "tuple", internalType: "struct IByzantineFactory.SlasherParams", components: [ { name: "slasherType", type: "uint8", internalType: "enum IByzantineFactory.SlasherType", }, { name: "vetoDuration", type: "uint48", internalType: "uint48", }, { name: "resolverSetEpochsDelay", type: "uint256", internalType: "uint256", }, ], }, ], }, { name: "curator", type: "address", internalType: "address" }, ], }, ], outputs: [{ name: "superVault", type: "address", internalType: "address" }], stateMutability: "nonpayable", }, { type: "function", name: "createSymByzVault", inputs: [ { name: "_byzVaultParams", type: "tuple", internalType: "struct IByzantineFactory.ByzVaultParams", components: [ { name: "token", type: "address", internalType: "contract IERC20", }, { name: "roleManager", type: "address", internalType: "address", }, { name: "versionManager", type: "address", internalType: "address", }, { name: "depositWhitelistManager", type: "address", internalType: "address", }, { name: "depositLimitManager", type: "address", internalType: "address", }, { name: "curatorFeeClaimer", type: "address", internalType: "address", }, { name: "curatorFeeClaimerRoleAdmin", type: "address", internalType: "address", }, { name: "depositLimit", type: "uint256", internalType: "uint256", }, { name: "curatorFee", type: "uint16", internalType: "uint16", }, { name: "isDepositLimit", type: "bool", internalType: "bool", }, { name: "isPrivateVault", type: "bool", internalType: "bool", }, { name: "isTokenized", type: "bool", internalType: "bool" }, { name: "name", type: "string", internalType: "string" }, { name: "symbol", type: "string", internalType: "string" }, { name: "metadataURI", type: "string", internalType: "string", }, ], }, { name: "_symParams", type: "tuple", internalType: "struct IByzantineFactory.SymParams", components: [ { name: "burnerParams", type: "tuple", internalType: "struct IByzantineFactory.BurnerParams", components: [ { name: "owner", type: "address", internalType: "address", }, { name: "delay", type: "uint48", internalType: "uint48" }, { name: "globalReceiver", type: "address", internalType: "address", }, { name: "networkReceivers", type: "tuple[]", internalType: "struct IBurnerRouter.NetworkReceiver[]", components: [ { name: "network", type: "address", internalType: "address", }, { name: "receiver", type: "address", internalType: "address", }, ], }, { name: "operatorNetworkReceivers", type: "tuple[]", internalType: "struct IBurnerRouter.OperatorNetworkReceiver[]", components: [ { name: "network", type: "address", internalType: "address", }, { name: "operator", type: "address", internalType: "address", }, { name: "receiver", type: "address", internalType: "address", }, ], }, ], }, { name: "vaultParams", type: "tuple", internalType: "struct IByzantineFactory.VaultParams", components: [ { name: "version", type: "uint64", internalType: "uint64", }, { name: "epochDuration", type: "uint48", internalType: "uint48", }, ], }, { name: "delegatorParams", type: "tuple", internalType: "struct IByzantineFactory.DelegatorParams", components: [ { name: "delegatorType", type: "uint8", internalType: "enum IByzantineFactory.DelegatorType", }, { name: "hook", type: "address", internalType: "address", }, { name: "hookSetRoleHolder", type: "address", internalType: "address", }, { name: "networkLimitSetRoleHolders", type: "address[]", internalType: "address[]", }, { name: "operatorNetworkLimitOrSharesSetRoleHolders", type: "address[]", internalType: "address[]", }, { name: "operator", type: "address", internalType: "address", }, { name: "network", type: "address", internalType: "address", }, ], }, { name: "slasherParams", type: "tuple", internalType: "struct IByzantineFactory.SlasherParams", components: [ { name: "slasherType", type: "uint8", internalType: "enum IByzantineFactory.SlasherType", }, { name: "vetoDuration", type: "uint48", internalType: "uint48", }, { name: "resolverSetEpochsDelay", type: "uint256", internalType: "uint256", }, ], }, ], }, ], outputs: [ { name: "symByzVault", type: "address", internalType: "address" }, ], stateMutability: "nonpayable", }, { type: "function", name: "initialize", inputs: [ { name: "_initialOwner", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "owner", inputs: [], outputs: [{ name: "", type: "address", internalType: "address" }], stateMutability: "view", }, { type: "function", name: "preCalculateByzVaultAddress", inputs: [ { name: "_creator", type: "address", internalType: "address" }, { name: "_vaultType", type: "uint8", internalType: "enum IVaultVersionControl.VaultType", }, { name: "_version", type: "uint64", internalType: "uint64" }, ], outputs: [{ name: "", type: "address", internalType: "address" }], stateMutability: "view", }, { type: "function", name: "renounceOwnership", inputs: [], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setTokenToEigenStrategy", inputs: [ { name: "_token", type: "address[]", internalType: "contract IERC20[]", }, { name: "_strategy", type: "address[]", internalType: "contract IStrategy[]", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "stakingOracle", inputs: [], outputs: [ { name: "", type: "address", internalType: "contract IStakingOracle", }, ], stateMutability: "view", }, { type: "function", name: "strategyFactory", inputs: [], outputs: [ { name: "", type: "address", internalType: "contract IStrategyFactory", }, ], stateMutability: "view", }, { type: "function", name: "strategyManager", inputs: [], outputs: [ { name: "", type: "address", internalType: "contract IStrategyManager", }, ], stateMutability: "view", }, { type: "function", name: "transferOwnership", inputs: [{ name: "newOwner", type: "address", internalType: "address" }], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "vaultConfigurator", inputs: [], outputs: [ { name: "", type: "address", internalType: "contract IVaultConfigurator", }, ], stateMutability: "view", }, { type: "function", name: "vaultVersionControl", inputs: [], outputs: [ { name: "", type: "address", internalType: "contract IVaultVersionControl", }, ], stateMutability: "view", }, { type: "event", name: "EigenByzVaultCreated", inputs: [ { name: "creator", type: "address", indexed: true, internalType: "address", }, { name: "collateralToken", type: "address", indexed: true, internalType: "address", }, { name: "eigenByzVault", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "Initialized", inputs: [ { name: "version", type: "uint64", indexed: false, internalType: "uint64", }, ], anonymous: false, }, { type: "event", name: "OwnershipTransferred", inputs: [ { name: "previousOwner", type: "address", indexed: true, internalType: "address", }, { name: "newOwner", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "SuperERC20VaultCreated", inputs: [ { name: "creator", type: "address", indexed: true, internalType: "address", }, { name: "collateralToken", type: "address", indexed: true, internalType: "address", }, { name: "superERC20Vault", type: "address", indexed: true, internalType: "address", }, { name: "symVault", type: "address", indexed: false, internalType: "address", }, { name: "eigenVault", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "SymByzVaultCreated", inputs: [ { name: "creator", type: "address", indexed: true, internalType: "address", }, { name: "collateralToken", type: "address", indexed: true, internalType: "address", }, { name: "symByzVault", type: "address", indexed: true, internalType: "address", }, { name: "symVault", type: "address", indexed: false, internalType: "address", }, { name: "delegator", type: "address", indexed: false, internalType: "address", }, { name: "slasher", type: "address", indexed: false, internalType: "address", }, { name: "burnerRouter", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "error", name: "ArrayLengthMismatch", inputs: [] }, { type: "error", name: "Create2EmptyBytecode", inputs: [] }, { type: "error", name: "EigenStrategyDoesNotExist", inputs: [] }, { type: "error", name: "EigenStrategyNotWhitelisted", inputs: [] }, { type: "error", name: "FailedDeployment", inputs: [] }, { type: "error", name: "InsufficientBalance", inputs: [ { name: "balance", type: "uint256", internalType: "uint256" }, { name: "needed", type: "uint256", internalType: "uint256" }, ], }, { type: "error", name: "InvalidDelegatorType", inputs: [] }, { type: "error", name: "InvalidETHAddress", inputs: [] }, { type: "error", name: "InvalidInitialization", inputs: [] }, { type: "error", name: "InvalidSlasherType", inputs: [] }, { type: "error", name: "NotInitializing", inputs: [] }, { type: "error", name: "OwnableInvalidOwner", inputs: [{ name: "owner", type: "address", internalType: "address" }], }, { type: "error", name: "OwnableUnauthorizedAccount", inputs: [{ name: "account", type: "address", internalType: "address" }], }, ];