@pufferfinance/puffer-sdk 1.24.0 → 1.24.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";var n=Object.defineProperty;var s=(a,t,e)=>t in a?n(a,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[t]=e;var i=(a,t,e)=>s(a,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../abis/mainnet/InstitutionalVault.cjs"),c=require("../../constants-JN89aXws.cjs"),h=require("../../errors/validation-errors.cjs"),l=require("../../getContract-F-fd_vf7.cjs");class d{constructor(t,e,r){i(this,"viemChain");i(this,"address");this.walletClient=e,this.publicClient=r,this.viemChain=c.VIEM_CHAINS[t]}withAddress(t){return this.address=t,this}getAddress(){return this.address}getContract(){if(!this.address)throw new h.InvalidContractAddressError("No address specified for the contract",{fixMessage:"Set the contract address in the handler by using the setAddress method"});const t=o.InstitutionalVault,e={public:this.publicClient,wallet:this.walletClient};return l.getContract({address:this.address,abi:t,client:e})}getBeaconDepositContract(){return this.getContract().read.BEACON_DEPOSIT_CONTRACT()}getEigenDelegationManager(){return this.getContract().read.EIGEN_DELEGATION_MANAGER()}getEigenPodManager(){return this.getContract().read.EIGEN_POD_MANAGER()}getEigenPod(){return this.getContract().read.getEigenPod()}allowance(t,e){return this.getContract().read.allowance([t,e])}approve(t,e){return this.getContract().write.approve([t,e],{account:this.walletClient.account,chain:this.viemChain})}asset(){return this.getContract().read.asset()}authority(){return this.getContract().read.authority()}balanceOf(t){return this.getContract().read.balanceOf([t])}decimals(){return this.getContract().read.decimals()}completeQueuedWithdrawals(t,e){return this.getContract().write.completeQueuedWithdrawals([t,e],{account:this.walletClient.account,chain:this.viemChain})}convertToAssets(t){return this.getContract().read.convertToAssets([t])}convertToShares(t){return this.getContract().read.convertToShares([t])}deposit(t,e){return this.getContract().write.deposit([t,e],{account:this.walletClient.account,chain:this.viemChain})}depositETH(t,e){return this.getContract().write.depositETH([t],{account:this.walletClient.account,chain:this.viemChain,value:e})}getNonRestakedValidatorETH(){return this.getContract().read.getNonRestakedValidatorETH()}getRestakedValidatorETH(){return this.getContract().read.getRestakedValidatorETH()}getWithdrawalCredentials(){return this.getContract().read.getWithdrawalCredentials()}maxDeposit(t){return this.getContract().read.maxDeposit([t])}maxMint(t){return this.getContract().read.maxMint([t])}maxRedeem(t){return this.getContract().read.maxRedeem([t])}maxWithdraw(t){return this.getContract().read.maxWithdraw([t])}mint(t,e){return this.getContract().write.mint([t,e],{account:this.walletClient.account,chain:this.viemChain})}name(){return this.getContract().read.name()}previewDeposit(t){return this.getContract().read.previewDeposit([t])}previewMint(t){return this.getContract().read.previewMint([t])}previewRedeem(t){return this.getContract().read.previewRedeem([t])}previewWithdraw(t){return this.getContract().read.previewWithdraw([t])}queueWithdrawals(t){return this.getContract().write.queueWithdrawals([t],{account:this.walletClient.account,chain:this.viemChain})}redeem(t,e,r){return this.getContract().write.redeem([t,e,r],{account:this.walletClient.account,chain:this.viemChain})}setValidatorsETH(t,e){return this.getContract().write.setValidatorsETH([t,e],{account:this.walletClient.account,chain:this.viemChain})}startNonRestakingValidators(t,e,r){return this.getContract().write.startNonRestakingValidators([t,e,r],{account:this.walletClient.account,chain:this.viemChain})}startRestakingValidators(t,e,r){return this.getContract().write.startRestakingValidators([t,e,r],{account:this.walletClient.account,chain:this.viemChain})}withdraw(t,e,r){return this.getContract().write.withdraw([t,e,r],{account:this.walletClient.account,chain:this.viemChain})}symbol(){return this.getContract().read.symbol()}totalAssets(){return this.getContract().read.totalAssets()}totalSupply(){return this.getContract().read.totalSupply()}transfer(t,e){return this.getContract().write.transfer([t,e],{account:this.walletClient.account,chain:this.viemChain})}transferFrom(t,e,r){return this.getContract().write.transferFrom([t,e,r],{account:this.walletClient.account,chain:this.viemChain})}}exports.InstitutionalVaultHandler=d;
1
+ "use strict";var n=Object.defineProperty;var s=(r,t,e)=>t in r?n(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var i=(r,t,e)=>s(r,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../abis/mainnet/InstitutionalVault.cjs"),c=require("../../constants-JN89aXws.cjs"),h=require("../../errors/validation-errors.cjs"),l=require("../../getContract-F-fd_vf7.cjs");class u{constructor(t,e,a){i(this,"viemChain");i(this,"address");this.walletClient=e,this.publicClient=a,this.viemChain=c.VIEM_CHAINS[t]}withAddress(t){return this.address=t,this}getAddress(){return this.address}getContract(){if(!this.address)throw new h.InvalidContractAddressError("No address specified for the contract",{fixMessage:"Set the contract address in the handler by using the setAddress method"});const t=o.InstitutionalVault,e={public:this.publicClient,wallet:this.walletClient};return l.getContract({address:this.address,abi:t,client:e})}getBeaconDepositContract(){return this.getContract().read.BEACON_DEPOSIT_CONTRACT()}getEigenDelegationManager(){return this.getContract().read.EIGEN_DELEGATION_MANAGER()}getEigenPodManager(){return this.getContract().read.EIGEN_POD_MANAGER()}getEigenPod(){return this.getContract().read.getEigenPod()}allowance(t,e){return this.getContract().read.allowance([t,e])}approve(t,e){return this.getContract().write.approve([t,e],{account:this.walletClient.account,chain:this.viemChain})}asset(){return this.getContract().read.asset()}authority(){return this.getContract().read.authority()}balanceOf(t){return this.getContract().read.balanceOf([t])}decimals(){return this.getContract().read.decimals()}completeQueuedWithdrawals(t,e){return this.getContract().write.completeQueuedWithdrawals([t,e],{account:this.walletClient.account,chain:this.viemChain})}convertToAssets(t){return this.getContract().read.convertToAssets([t])}convertToShares(t){return this.getContract().read.convertToShares([t])}deposit(t,e){return this.getContract().write.deposit([t,e],{account:this.walletClient.account,chain:this.viemChain})}depositETH(t,e){return this.getContract().write.depositETH([t],{account:this.walletClient.account,chain:this.viemChain,value:e})}getNonRestakedValidatorETH(){return this.getContract().read.getNonRestakedValidatorETH()}getRestakedValidatorETH(){return this.getContract().read.getRestakedValidatorETH()}getWithdrawalCredentials(){return this.getContract().read.getWithdrawalCredentials()}maxDeposit(t){return this.getContract().read.maxDeposit([t])}maxMint(t){return this.getContract().read.maxMint([t])}maxRedeem(t){return this.getContract().read.maxRedeem([t])}maxWithdraw(t){return this.getContract().read.maxWithdraw([t])}mint(t,e){return this.getContract().write.mint([t,e],{account:this.walletClient.account,chain:this.viemChain})}name(){return this.getContract().read.name()}previewDeposit(t){return this.getContract().read.previewDeposit([t])}previewMint(t){return this.getContract().read.previewMint([t])}previewRedeem(t){return this.getContract().read.previewRedeem([t])}previewWithdraw(t){return this.getContract().read.previewWithdraw([t])}queueWithdrawals(t){return this.getContract().write.queueWithdrawals([t],{account:this.walletClient.account,chain:this.viemChain})}redeem(t,e,a){return this.getContract().write.redeem([t,e,a],{account:this.walletClient.account,chain:this.viemChain})}setValidatorsETH(t,e){return this.getContract().write.setValidatorsETH([t,e],{account:this.walletClient.account,chain:this.viemChain})}startNonRestakingValidators(t,e,a){return this.getContract().write.startNonRestakingValidators([t,e,a],{account:this.walletClient.account,chain:this.viemChain})}startRestakingValidators(t,e,a){return this.getContract().write.startRestakingValidators([t,e,a],{account:this.walletClient.account,chain:this.viemChain})}withdraw(t,e,a){return this.getContract().write.withdraw([t,e,a],{account:this.walletClient.account,chain:this.viemChain})}symbol(){return this.getContract().read.symbol()}totalAssets(){return this.getContract().read.totalAssets()}totalSupply(){return this.getContract().read.totalSupply()}transfer(t,e){return this.getContract().write.transfer([t,e],{account:this.walletClient.account,chain:this.viemChain})}transferFrom(t,e,a){return this.getContract().write.transferFrom([t,e,a],{account:this.walletClient.account,chain:this.viemChain})}customExternalCall(t,e,a){return this.getContract().write.customExternalCall([t,e,a],{account:this.walletClient.account,chain:this.viemChain})}}exports.InstitutionalVaultHandler=u;
2
2
  //# sourceMappingURL=institutional-vault-handler.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"institutional-vault-handler.cjs","sources":["../../../lib/contracts/handlers/institutional-vault-handler.ts"],"sourcesContent":["import {\n Chain as ViemChain,\n WalletClient,\n PublicClient,\n getContract,\n GetContractReturnType,\n Address,\n} from 'viem';\nimport { InstitutionalVault } from '../abis/mainnet/InstitutionalVault';\nimport { Chain, VIEM_CHAINS } from '../../chains/constants';\nimport { InvalidContractAddressError } from '../../errors/validation-errors';\n\nexport type QueuedWithdrawal = {\n staker: Address;\n delegatedTo: Address;\n withdrawer: Address;\n nonce: bigint;\n startBlock: number;\n strategies: Address[];\n scaledShares: bigint[];\n};\n\n/**\n * Handler for the `InstitutionalVault` contract exposing methods to\n * interact with the contract.\n */\nexport class InstitutionalVaultHandler {\n private viemChain: ViemChain;\n private address?: Address;\n\n /**\n * Create the handler for the `InstitutionalVault` contract exposing\n * methods to interact with the contract.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n }\n\n /**\n * Set the address of the contract for this handler.\n *\n * @param address The address of the contract.\n * @returns The handler.\n */\n public withAddress(address: Address) {\n this.address = address;\n\n return this;\n }\n\n /**\n * Get the address of the contract for this handler.\n *\n * @returns The address of the contract.\n */\n public getAddress() {\n return this.address;\n }\n\n /**\n * Get the contract. This is a method because the typings are complex\n * and lost when trying to make it a member.\n *\n * @returns The viem contract.\n */\n public getContract() {\n if (!this.address) {\n throw new InvalidContractAddressError(\n `No address specified for the contract`,\n {\n fixMessage: `Set the contract address in the handler by using the setAddress method`,\n },\n );\n }\n\n const abi = InstitutionalVault;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({\n address: this.address,\n abi,\n client,\n }) as GetContractReturnType<typeof abi, typeof client, Address>;\n }\n\n /**\n * Get the beacon deposit contract address.\n *\n * @returns The beacon deposit contract address.\n */\n public getBeaconDepositContract() {\n return this.getContract().read.BEACON_DEPOSIT_CONTRACT();\n }\n\n /**\n * Get the eigen delegation manager contract address.\n *\n * @returns The eigen delegation manager.\n */\n public getEigenDelegationManager() {\n return this.getContract().read.EIGEN_DELEGATION_MANAGER();\n }\n\n /**\n * Get the eigen pod manager contract address.\n *\n * @returns The eigen pod manager contract address.\n */\n public getEigenPodManager() {\n return this.getContract().read.EIGEN_POD_MANAGER();\n }\n\n /**\n * Get the eigen pod address.\n *\n * @returns The eigen pod address.\n */\n public getEigenPod() {\n return this.getContract().read.getEigenPod();\n }\n\n /**\n * Get the allowance for the spender to spend the owner's tokens.\n *\n * @param owner The owner of the tokens.\n * @param spender The spender of the tokens.\n * @returns The allowance of the owner for the spender.\n */\n public allowance(owner: Address, spender: Address) {\n return this.getContract().read.allowance([owner, spender]);\n }\n\n /**\n * Approve the spender to spend the owner's tokens.\n *\n * @param spender The spender of the tokens.\n * @param amount The amount of tokens to approve.\n */\n public approve(spender: Address, amount: bigint) {\n return this.getContract().write.approve([spender, amount], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Get the asset of the vault.\n *\n * @returns The asset of the vault.\n */\n public asset() {\n return this.getContract().read.asset();\n }\n\n /**\n * Get the authority of the vault.\n *\n * @returns The authority of the vault.\n */\n public authority() {\n return this.getContract().read.authority();\n }\n\n /**\n * Get the balance of the address.\n *\n * @param address The address to get the balance of.\n * @returns The balance of the address.\n */\n public balanceOf(address: Address) {\n return this.getContract().read.balanceOf([address]);\n }\n\n /**\n * Get the number of decimals of the token.\n *\n * @returns The number of decimals of the token.\n */\n public decimals() {\n return this.getContract().read.decimals();\n }\n\n /**\n * Complete the queued withdrawals.\n *\n * @param withdrawals The withdrawals to complete.\n * @param receiveAsTokens Whether to receive the assets as tokens.\n */\n public completeQueuedWithdrawals(\n withdrawals: QueuedWithdrawal[],\n receiveAsTokens: boolean[],\n ) {\n return this.getContract().write.completeQueuedWithdrawals(\n [withdrawals, receiveAsTokens],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Convert shares to assets.\n *\n * @param shares The number of shares to convert.\n * @returns The number of assets.\n */\n public convertToAssets(shares: bigint) {\n return this.getContract().read.convertToAssets([shares]);\n }\n\n /**\n * Convert assets to shares.\n *\n * @param assets The number of assets to convert.\n * @returns The number of shares.\n */\n public convertToShares(assets: bigint) {\n return this.getContract().read.convertToShares([assets]);\n }\n\n /**\n * Deposit assets into the vault.\n *\n * @param assets The number of assets to deposit.\n * @param receiver The address to receive the shares.\n */\n public deposit(assets: bigint, receiver: Address) {\n return this.getContract().write.deposit([assets, receiver], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Deposit ETH into the vault.\n *\n * @param receiver The address to receive the shares.\n * @param value The amount of ETH to deposit.\n */\n public depositETH(receiver: Address, value: bigint) {\n return this.getContract().write.depositETH([receiver], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n value,\n });\n }\n\n /**\n * Get the non-restaked validator ETH.\n *\n * @returns The non-restaked validator ETH.\n */\n public getNonRestakedValidatorETH() {\n return this.getContract().read.getNonRestakedValidatorETH();\n }\n\n /**\n * Get the restaked validator ETH.\n *\n * @returns The restaked validator ETH.\n */\n public getRestakedValidatorETH() {\n return this.getContract().read.getRestakedValidatorETH();\n }\n\n /**\n * Get the withdrawal credentials.\n *\n * @returns The withdrawal credentials.\n */\n public getWithdrawalCredentials() {\n return this.getContract().read.getWithdrawalCredentials();\n }\n\n /**\n * Get the maximum deposit amount for the address.\n *\n * @param address The address to get the maximum deposit amount for.\n * @returns The maximum deposit amount for the address.\n */\n public maxDeposit(address: Address) {\n return this.getContract().read.maxDeposit([address]);\n }\n\n /**\n * Get the maximum mint amount for the address.\n *\n * @param address The address to get the maximum mint amount for.\n * @returns The maximum mint amount for the address.\n */\n public maxMint(address: Address) {\n return this.getContract().read.maxMint([address]);\n }\n\n /**\n * Get the maximum redeem amount for the address.\n *\n * @param address The address to get the maximum redeem amount for.\n * @returns The maximum redeem amount for the address.\n */\n public maxRedeem(address: Address) {\n return this.getContract().read.maxRedeem([address]);\n }\n\n /**\n * Get the maximum withdraw amount for the address.\n *\n * @param address The address to get the maximum withdraw amount for.\n * @returns The maximum withdraw amount for the address.\n */\n public maxWithdraw(address: Address) {\n return this.getContract().read.maxWithdraw([address]);\n }\n\n /**\n * Mint shares to the receiver.\n *\n * @param shares The number of shares to mint.\n * @param receiver The address to receive the shares.\n */\n public mint(shares: bigint, receiver: Address) {\n return this.getContract().write.mint([shares, receiver], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Get the name of the contract.\n *\n * @returns The name of the contract.\n */\n public name() {\n return this.getContract().read.name();\n }\n\n /**\n * Preview the deposit amount for the assets.\n *\n * @param assets The number of assets to deposit.\n * @returns The number of shares to receive.\n */\n public previewDeposit(assets: bigint) {\n return this.getContract().read.previewDeposit([assets]);\n }\n\n /**\n * Preview the mint amount for the shares.\n *\n * @param shares The number of shares to mint.\n * @returns The number of assets to receive.\n */\n public previewMint(shares: bigint) {\n return this.getContract().read.previewMint([shares]);\n }\n\n /**\n * Preview the redeem amount for the shares.\n *\n * @param shares The number of shares to redeem.\n * @returns The number of assets to receive.\n */\n public previewRedeem(shares: bigint) {\n return this.getContract().read.previewRedeem([shares]);\n }\n\n /**\n * Preview the withdraw amount for the shares.\n *\n * @param shares The number of shares to withdraw.\n * @returns The number of assets to receive.\n */\n public previewWithdraw(shares: bigint) {\n return this.getContract().read.previewWithdraw([shares]);\n }\n\n /**\n * Queue the withdrawals.\n *\n * @param shares The number of shares to withdraw.\n */\n public queueWithdrawals(shares: bigint) {\n return this.getContract().write.queueWithdrawals([shares], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Redeem the shares to the receiver.\n *\n * @param shares The number of shares to redeem.\n * @param receiver The address to receive the assets.\n * @param owner The owner of the shares.\n */\n public redeem(shares: bigint, receiver: Address, owner: Address) {\n return this.getContract().write.redeem([shares, receiver, owner], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Set the validators ETH.\n *\n * @param restakedValidatorsETH The amount of restaked validator ETH.\n * @param nonRestakedValidatorsETH The amount of non-restaked validator ETH.\n */\n public setValidatorsETH(\n restakedValidatorsETH: bigint,\n nonRestakedValidatorsETH: bigint,\n ) {\n return this.getContract().write.setValidatorsETH(\n [restakedValidatorsETH, nonRestakedValidatorsETH],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Start the non-restaking validators.\n *\n * @param pubKeys The public keys of the validators.\n * @param signatures The signatures of the validators.\n * @param depositDataRoots The deposit data roots of the validators.\n */\n public startNonRestakingValidators(\n pubKeys: Address[],\n signatures: Address[],\n depositDataRoots: Address[],\n ) {\n return this.getContract().write.startNonRestakingValidators(\n [pubKeys, signatures, depositDataRoots],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Start the restaking validators.\n *\n * @param pubKeys The public keys of the validators.\n * @param signatures The signatures of the validators.\n * @param depositDataRoots The deposit data roots of the validators.\n */\n public startRestakingValidators(\n pubKeys: Address[],\n signatures: Address[],\n depositDataRoots: Address[],\n ) {\n return this.getContract().write.startRestakingValidators(\n [pubKeys, signatures, depositDataRoots],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Withdraw the assets to the receiver.\n *\n * @param assets The number of assets to withdraw.\n * @param receiver The address to receive the assets.\n * @param owner The owner of the assets.\n */\n public withdraw(assets: bigint, receiver: Address, owner: Address) {\n return this.getContract().write.withdraw([assets, receiver, owner], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Get the symbol of the contract.\n *\n * @returns The symbol of the contract.\n */\n public symbol() {\n return this.getContract().read.symbol();\n }\n\n /**\n * Get the total assets of the vault.\n *\n * @returns The total assets of the vault.\n */\n public totalAssets() {\n return this.getContract().read.totalAssets();\n }\n\n /**\n * Get the total supply of the vault.\n *\n * @returns The total supply of the vault.\n */\n public totalSupply() {\n return this.getContract().read.totalSupply();\n }\n\n /**\n * Transfer the value to the to address.\n *\n * @param to The address to transfer the value to.\n * @param value The amount of value to transfer.\n */\n public transfer(to: Address, value: bigint) {\n return this.getContract().write.transfer([to, value], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Transfer the value from the from address to the to address.\n *\n * @param from The address to transfer the value from.\n * @param to The address to transfer the value to.\n * @param value The amount of value to transfer.\n */\n public transferFrom(from: Address, to: Address, value: bigint) {\n return this.getContract().write.transferFrom([from, to, value], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n}\n"],"names":["InstitutionalVaultHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","address","InvalidContractAddressError","abi","InstitutionalVault","client","getContract","owner","spender","amount","withdrawals","receiveAsTokens","shares","assets","receiver","value","restakedValidatorsETH","nonRestakedValidatorsETH","pubKeys","signatures","depositDataRoots","to","from"],"mappings":"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"}
1
+ {"version":3,"file":"institutional-vault-handler.cjs","sources":["../../../lib/contracts/handlers/institutional-vault-handler.ts"],"sourcesContent":["import {\n Chain as ViemChain,\n WalletClient,\n PublicClient,\n getContract,\n GetContractReturnType,\n Address,\n Hex,\n} from 'viem';\nimport { InstitutionalVault } from '../abis/mainnet/InstitutionalVault';\nimport { Chain, VIEM_CHAINS } from '../../chains/constants';\nimport { InvalidContractAddressError } from '../../errors/validation-errors';\n\nexport type QueuedWithdrawal = {\n staker: Address;\n delegatedTo: Address;\n withdrawer: Address;\n nonce: bigint;\n startBlock: number;\n strategies: Address[];\n scaledShares: bigint[];\n};\n\n/**\n * Handler for the `InstitutionalVault` contract exposing methods to\n * interact with the contract.\n */\nexport class InstitutionalVaultHandler {\n private viemChain: ViemChain;\n private address?: Address;\n\n /**\n * Create the handler for the `InstitutionalVault` contract exposing\n * methods to interact with the contract.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n }\n\n /**\n * Set the address of the contract for this handler.\n *\n * @param address The address of the contract.\n * @returns The handler.\n */\n public withAddress(address: Address) {\n this.address = address;\n\n return this;\n }\n\n /**\n * Get the address of the contract for this handler.\n *\n * @returns The address of the contract.\n */\n public getAddress() {\n return this.address;\n }\n\n /**\n * Get the contract. This is a method because the typings are complex\n * and lost when trying to make it a member.\n *\n * @returns The viem contract.\n */\n public getContract() {\n if (!this.address) {\n throw new InvalidContractAddressError(\n `No address specified for the contract`,\n {\n fixMessage: `Set the contract address in the handler by using the setAddress method`,\n },\n );\n }\n\n const abi = InstitutionalVault;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({\n address: this.address,\n abi,\n client,\n }) as GetContractReturnType<typeof abi, typeof client, Address>;\n }\n\n /**\n * Get the beacon deposit contract address.\n *\n * @returns The beacon deposit contract address.\n */\n public getBeaconDepositContract() {\n return this.getContract().read.BEACON_DEPOSIT_CONTRACT();\n }\n\n /**\n * Get the eigen delegation manager contract address.\n *\n * @returns The eigen delegation manager.\n */\n public getEigenDelegationManager() {\n return this.getContract().read.EIGEN_DELEGATION_MANAGER();\n }\n\n /**\n * Get the eigen pod manager contract address.\n *\n * @returns The eigen pod manager contract address.\n */\n public getEigenPodManager() {\n return this.getContract().read.EIGEN_POD_MANAGER();\n }\n\n /**\n * Get the eigen pod address.\n *\n * @returns The eigen pod address.\n */\n public getEigenPod() {\n return this.getContract().read.getEigenPod();\n }\n\n /**\n * Get the allowance for the spender to spend the owner's tokens.\n *\n * @param owner The owner of the tokens.\n * @param spender The spender of the tokens.\n * @returns The allowance of the owner for the spender.\n */\n public allowance(owner: Address, spender: Address) {\n return this.getContract().read.allowance([owner, spender]);\n }\n\n /**\n * Approve the spender to spend the owner's tokens.\n *\n * @param spender The spender of the tokens.\n * @param amount The amount of tokens to approve.\n */\n public approve(spender: Address, amount: bigint) {\n return this.getContract().write.approve([spender, amount], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Get the asset of the vault.\n *\n * @returns The asset of the vault.\n */\n public asset() {\n return this.getContract().read.asset();\n }\n\n /**\n * Get the authority of the vault.\n *\n * @returns The authority of the vault.\n */\n public authority() {\n return this.getContract().read.authority();\n }\n\n /**\n * Get the balance of the address.\n *\n * @param address The address to get the balance of.\n * @returns The balance of the address.\n */\n public balanceOf(address: Address) {\n return this.getContract().read.balanceOf([address]);\n }\n\n /**\n * Get the number of decimals of the token.\n *\n * @returns The number of decimals of the token.\n */\n public decimals() {\n return this.getContract().read.decimals();\n }\n\n /**\n * Complete the queued withdrawals.\n *\n * @param withdrawals The withdrawals to complete.\n * @param receiveAsTokens Whether to receive the assets as tokens.\n */\n public completeQueuedWithdrawals(\n withdrawals: QueuedWithdrawal[],\n receiveAsTokens: boolean[],\n ) {\n return this.getContract().write.completeQueuedWithdrawals(\n [withdrawals, receiveAsTokens],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Convert shares to assets.\n *\n * @param shares The number of shares to convert.\n * @returns The number of assets.\n */\n public convertToAssets(shares: bigint) {\n return this.getContract().read.convertToAssets([shares]);\n }\n\n /**\n * Convert assets to shares.\n *\n * @param assets The number of assets to convert.\n * @returns The number of shares.\n */\n public convertToShares(assets: bigint) {\n return this.getContract().read.convertToShares([assets]);\n }\n\n /**\n * Deposit assets into the vault.\n *\n * @param assets The number of assets to deposit.\n * @param receiver The address to receive the shares.\n */\n public deposit(assets: bigint, receiver: Address) {\n return this.getContract().write.deposit([assets, receiver], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Deposit ETH into the vault.\n *\n * @param receiver The address to receive the shares.\n * @param value The amount of ETH to deposit.\n */\n public depositETH(receiver: Address, value: bigint) {\n return this.getContract().write.depositETH([receiver], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n value,\n });\n }\n\n /**\n * Get the non-restaked validator ETH.\n *\n * @returns The non-restaked validator ETH.\n */\n public getNonRestakedValidatorETH() {\n return this.getContract().read.getNonRestakedValidatorETH();\n }\n\n /**\n * Get the restaked validator ETH.\n *\n * @returns The restaked validator ETH.\n */\n public getRestakedValidatorETH() {\n return this.getContract().read.getRestakedValidatorETH();\n }\n\n /**\n * Get the withdrawal credentials.\n *\n * @returns The withdrawal credentials.\n */\n public getWithdrawalCredentials() {\n return this.getContract().read.getWithdrawalCredentials();\n }\n\n /**\n * Get the maximum deposit amount for the address.\n *\n * @param address The address to get the maximum deposit amount for.\n * @returns The maximum deposit amount for the address.\n */\n public maxDeposit(address: Address) {\n return this.getContract().read.maxDeposit([address]);\n }\n\n /**\n * Get the maximum mint amount for the address.\n *\n * @param address The address to get the maximum mint amount for.\n * @returns The maximum mint amount for the address.\n */\n public maxMint(address: Address) {\n return this.getContract().read.maxMint([address]);\n }\n\n /**\n * Get the maximum redeem amount for the address.\n *\n * @param address The address to get the maximum redeem amount for.\n * @returns The maximum redeem amount for the address.\n */\n public maxRedeem(address: Address) {\n return this.getContract().read.maxRedeem([address]);\n }\n\n /**\n * Get the maximum withdraw amount for the address.\n *\n * @param address The address to get the maximum withdraw amount for.\n * @returns The maximum withdraw amount for the address.\n */\n public maxWithdraw(address: Address) {\n return this.getContract().read.maxWithdraw([address]);\n }\n\n /**\n * Mint shares to the receiver.\n *\n * @param shares The number of shares to mint.\n * @param receiver The address to receive the shares.\n */\n public mint(shares: bigint, receiver: Address) {\n return this.getContract().write.mint([shares, receiver], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Get the name of the contract.\n *\n * @returns The name of the contract.\n */\n public name() {\n return this.getContract().read.name();\n }\n\n /**\n * Preview the deposit amount for the assets.\n *\n * @param assets The number of assets to deposit.\n * @returns The number of shares to receive.\n */\n public previewDeposit(assets: bigint) {\n return this.getContract().read.previewDeposit([assets]);\n }\n\n /**\n * Preview the mint amount for the shares.\n *\n * @param shares The number of shares to mint.\n * @returns The number of assets to receive.\n */\n public previewMint(shares: bigint) {\n return this.getContract().read.previewMint([shares]);\n }\n\n /**\n * Preview the redeem amount for the shares.\n *\n * @param shares The number of shares to redeem.\n * @returns The number of assets to receive.\n */\n public previewRedeem(shares: bigint) {\n return this.getContract().read.previewRedeem([shares]);\n }\n\n /**\n * Preview the withdraw amount for the shares.\n *\n * @param shares The number of shares to withdraw.\n * @returns The number of assets to receive.\n */\n public previewWithdraw(shares: bigint) {\n return this.getContract().read.previewWithdraw([shares]);\n }\n\n /**\n * Queue the withdrawals.\n *\n * @param shares The number of shares to withdraw.\n */\n public queueWithdrawals(shares: bigint) {\n return this.getContract().write.queueWithdrawals([shares], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Redeem the shares to the receiver.\n *\n * @param shares The number of shares to redeem.\n * @param receiver The address to receive the assets.\n * @param owner The owner of the shares.\n */\n public redeem(shares: bigint, receiver: Address, owner: Address) {\n return this.getContract().write.redeem([shares, receiver, owner], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Set the validators ETH.\n *\n * @param restakedValidatorsETH The amount of restaked validator ETH.\n * @param nonRestakedValidatorsETH The amount of non-restaked validator ETH.\n */\n public setValidatorsETH(\n restakedValidatorsETH: bigint,\n nonRestakedValidatorsETH: bigint,\n ) {\n return this.getContract().write.setValidatorsETH(\n [restakedValidatorsETH, nonRestakedValidatorsETH],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Start the non-restaking validators.\n *\n * @param pubKeys The public keys of the validators.\n * @param signatures The signatures of the validators.\n * @param depositDataRoots The deposit data roots of the validators.\n */\n public startNonRestakingValidators(\n pubKeys: Address[],\n signatures: Address[],\n depositDataRoots: Address[],\n ) {\n return this.getContract().write.startNonRestakingValidators(\n [pubKeys, signatures, depositDataRoots],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Start the restaking validators.\n *\n * @param pubKeys The public keys of the validators.\n * @param signatures The signatures of the validators.\n * @param depositDataRoots The deposit data roots of the validators.\n */\n public startRestakingValidators(\n pubKeys: Address[],\n signatures: Address[],\n depositDataRoots: Address[],\n ) {\n return this.getContract().write.startRestakingValidators(\n [pubKeys, signatures, depositDataRoots],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Withdraw the assets to the receiver.\n *\n * @param assets The number of assets to withdraw.\n * @param receiver The address to receive the assets.\n * @param owner The owner of the assets.\n */\n public withdraw(assets: bigint, receiver: Address, owner: Address) {\n return this.getContract().write.withdraw([assets, receiver, owner], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Get the symbol of the contract.\n *\n * @returns The symbol of the contract.\n */\n public symbol() {\n return this.getContract().read.symbol();\n }\n\n /**\n * Get the total assets of the vault.\n *\n * @returns The total assets of the vault.\n */\n public totalAssets() {\n return this.getContract().read.totalAssets();\n }\n\n /**\n * Get the total supply of the vault.\n *\n * @returns The total supply of the vault.\n */\n public totalSupply() {\n return this.getContract().read.totalSupply();\n }\n\n /**\n * Transfer the value to the to address.\n *\n * @param to The address to transfer the value to.\n * @param value The amount of value to transfer.\n */\n public transfer(to: Address, value: bigint) {\n return this.getContract().write.transfer([to, value], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Transfer the value from the from address to the to address.\n *\n * @param from The address to transfer the value from.\n * @param to The address to transfer the value to.\n * @param value The amount of value to transfer.\n */\n public transferFrom(from: Address, to: Address, value: bigint) {\n return this.getContract().write.transferFrom([from, to, value], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Call a custom external function.\n *\n * @param target The target contract address.\n * @param data The calldata to send a transaction to the target contract.\n * @param value The amount of value to send to the target contract.\n */\n public customExternalCall(target: Address, data: Hex, value: bigint) {\n return this.getContract().write.customExternalCall([target, data, value], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n}\n"],"names":["InstitutionalVaultHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","address","InvalidContractAddressError","abi","InstitutionalVault","client","getContract","owner","spender","amount","withdrawals","receiveAsTokens","shares","assets","receiver","value","restakedValidatorsETH","nonRestakedValidatorsETH","pubKeys","signatures","depositDataRoots","to","from","target","data"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Chain as ViemChain, WalletClient, PublicClient, GetContractReturnType, Address } from 'viem';
1
+ import { Chain as ViemChain, WalletClient, PublicClient, GetContractReturnType, Address, Hex } from 'viem';
2
2
  import { Chain } from '../../chains/constants';
3
3
  export type QueuedWithdrawal = {
4
4
  staker: Address;
@@ -759,15 +759,15 @@ export declare class InstitutionalVaultHandler {
759
759
  blobGasUsed: bigint;
760
760
  difficulty: bigint;
761
761
  excessBlobGas: bigint;
762
- extraData: import('viem').Hex;
762
+ extraData: Hex;
763
763
  gasLimit: bigint;
764
764
  gasUsed: bigint;
765
765
  miner: Address;
766
766
  mixHash: import('viem').Hash;
767
767
  parentBeaconBlockRoot?: `0x${string}` | undefined;
768
768
  parentHash: import('viem').Hash;
769
- receiptsRoot: import('viem').Hex;
770
- sealFields: import('viem').Hex[];
769
+ receiptsRoot: Hex;
770
+ sealFields: Hex[];
771
771
  sha3Uncles: import('viem').Hash;
772
772
  size: bigint;
773
773
  stateRoot: import('viem').Hash;
@@ -782,12 +782,12 @@ export declare class InstitutionalVaultHandler {
782
782
  from: Address;
783
783
  gas: bigint;
784
784
  hash: import('viem').Hash;
785
- input: import('viem').Hex;
785
+ input: Hex;
786
786
  nonce: number;
787
- r: import('viem').Hex;
788
- s: import('viem').Hex;
787
+ r: Hex;
788
+ s: Hex;
789
789
  to: Address | null;
790
- typeHex: import('viem').Hex | null;
790
+ typeHex: Hex | null;
791
791
  v: bigint;
792
792
  value: bigint;
793
793
  accessList?: undefined | undefined;
@@ -807,12 +807,12 @@ export declare class InstitutionalVaultHandler {
807
807
  from: Address;
808
808
  gas: bigint;
809
809
  hash: import('viem').Hash;
810
- input: import('viem').Hex;
810
+ input: Hex;
811
811
  nonce: number;
812
- r: import('viem').Hex;
813
- s: import('viem').Hex;
812
+ r: Hex;
813
+ s: Hex;
814
814
  to: Address | null;
815
- typeHex: import('viem').Hex | null;
815
+ typeHex: Hex | null;
816
816
  v: bigint;
817
817
  value: bigint;
818
818
  accessList: import('viem').AccessList;
@@ -832,12 +832,12 @@ export declare class InstitutionalVaultHandler {
832
832
  from: Address;
833
833
  gas: bigint;
834
834
  hash: import('viem').Hash;
835
- input: import('viem').Hex;
835
+ input: Hex;
836
836
  nonce: number;
837
- r: import('viem').Hex;
838
- s: import('viem').Hex;
837
+ r: Hex;
838
+ s: Hex;
839
839
  to: Address | null;
840
- typeHex: import('viem').Hex | null;
840
+ typeHex: Hex | null;
841
841
  v: bigint;
842
842
  value: bigint;
843
843
  accessList: import('viem').AccessList;
@@ -857,17 +857,17 @@ export declare class InstitutionalVaultHandler {
857
857
  from: Address;
858
858
  gas: bigint;
859
859
  hash: import('viem').Hash;
860
- input: import('viem').Hex;
860
+ input: Hex;
861
861
  nonce: number;
862
- r: import('viem').Hex;
863
- s: import('viem').Hex;
862
+ r: Hex;
863
+ s: Hex;
864
864
  to: Address | null;
865
- typeHex: import('viem').Hex | null;
865
+ typeHex: Hex | null;
866
866
  v: bigint;
867
867
  value: bigint;
868
868
  accessList: import('viem').AccessList;
869
869
  authorizationList?: undefined | undefined;
870
- blobVersionedHashes: readonly import('viem').Hex[];
870
+ blobVersionedHashes: readonly Hex[];
871
871
  chainId: number;
872
872
  type: "eip4844";
873
873
  gasPrice?: undefined | undefined;
@@ -882,12 +882,12 @@ export declare class InstitutionalVaultHandler {
882
882
  from: Address;
883
883
  gas: bigint;
884
884
  hash: import('viem').Hash;
885
- input: import('viem').Hex;
885
+ input: Hex;
886
886
  nonce: number;
887
- r: import('viem').Hex;
888
- s: import('viem').Hex;
887
+ r: Hex;
888
+ s: Hex;
889
889
  to: Address | null;
890
- typeHex: import('viem').Hex | null;
890
+ typeHex: Hex | null;
891
891
  v: bigint;
892
892
  value: bigint;
893
893
  accessList: import('viem').AccessList;
@@ -932,12 +932,12 @@ export declare class InstitutionalVaultHandler {
932
932
  from: Address;
933
933
  gas: bigint;
934
934
  hash: import('viem').Hash;
935
- input: import('viem').Hex;
935
+ input: Hex;
936
936
  nonce: number;
937
- r: import('viem').Hex;
938
- s: import('viem').Hex;
937
+ r: Hex;
938
+ s: Hex;
939
939
  to: Address | null;
940
- typeHex: import('viem').Hex | null;
940
+ typeHex: Hex | null;
941
941
  v: bigint;
942
942
  value: bigint;
943
943
  accessList?: undefined | undefined;
@@ -957,12 +957,12 @@ export declare class InstitutionalVaultHandler {
957
957
  from: Address;
958
958
  gas: bigint;
959
959
  hash: import('viem').Hash;
960
- input: import('viem').Hex;
960
+ input: Hex;
961
961
  nonce: number;
962
- r: import('viem').Hex;
963
- s: import('viem').Hex;
962
+ r: Hex;
963
+ s: Hex;
964
964
  to: Address | null;
965
- typeHex: import('viem').Hex | null;
965
+ typeHex: Hex | null;
966
966
  v: bigint;
967
967
  value: bigint;
968
968
  accessList: import('viem').AccessList;
@@ -982,12 +982,12 @@ export declare class InstitutionalVaultHandler {
982
982
  from: Address;
983
983
  gas: bigint;
984
984
  hash: import('viem').Hash;
985
- input: import('viem').Hex;
985
+ input: Hex;
986
986
  nonce: number;
987
- r: import('viem').Hex;
988
- s: import('viem').Hex;
987
+ r: Hex;
988
+ s: Hex;
989
989
  to: Address | null;
990
- typeHex: import('viem').Hex | null;
990
+ typeHex: Hex | null;
991
991
  v: bigint;
992
992
  value: bigint;
993
993
  accessList: import('viem').AccessList;
@@ -1007,17 +1007,17 @@ export declare class InstitutionalVaultHandler {
1007
1007
  from: Address;
1008
1008
  gas: bigint;
1009
1009
  hash: import('viem').Hash;
1010
- input: import('viem').Hex;
1010
+ input: Hex;
1011
1011
  nonce: number;
1012
- r: import('viem').Hex;
1013
- s: import('viem').Hex;
1012
+ r: Hex;
1013
+ s: Hex;
1014
1014
  to: Address | null;
1015
- typeHex: import('viem').Hex | null;
1015
+ typeHex: Hex | null;
1016
1016
  v: bigint;
1017
1017
  value: bigint;
1018
1018
  accessList: import('viem').AccessList;
1019
1019
  authorizationList?: undefined | undefined;
1020
- blobVersionedHashes: readonly import('viem').Hex[];
1020
+ blobVersionedHashes: readonly Hex[];
1021
1021
  chainId: number;
1022
1022
  type: "eip4844";
1023
1023
  gasPrice?: undefined | undefined;
@@ -1032,12 +1032,12 @@ export declare class InstitutionalVaultHandler {
1032
1032
  from: Address;
1033
1033
  gas: bigint;
1034
1034
  hash: import('viem').Hash;
1035
- input: import('viem').Hex;
1035
+ input: Hex;
1036
1036
  nonce: number;
1037
- r: import('viem').Hex;
1038
- s: import('viem').Hex;
1037
+ r: Hex;
1038
+ s: Hex;
1039
1039
  to: Address | null;
1040
- typeHex: import('viem').Hex | null;
1040
+ typeHex: Hex | null;
1041
1041
  v: bigint;
1042
1042
  value: bigint;
1043
1043
  accessList: import('viem').AccessList;
@@ -7578,7 +7578,7 @@ export declare class InstitutionalVaultHandler {
7578
7578
  scheme?: string | undefined | undefined;
7579
7579
  time?: Date | undefined;
7580
7580
  message: string;
7581
- signature: import('viem').Hex;
7581
+ signature: Hex;
7582
7582
  }) => Promise<boolean>;
7583
7583
  verifyTypedData: (args: import('viem').VerifyTypedDataActionParameters) => Promise<import('viem').VerifyTypedDataActionReturnType>;
7584
7584
  uninstallFilter: (args: import('viem').UninstallFilterParameters) => Promise<import('viem').UninstallFilterReturnType>;
@@ -15535,4 +15535,12 @@ export declare class InstitutionalVaultHandler {
15535
15535
  * @param value The amount of value to transfer.
15536
15536
  */
15537
15537
  transferFrom(from: Address, to: Address, value: bigint): Promise<`0x${string}`>;
15538
+ /**
15539
+ * Call a custom external function.
15540
+ *
15541
+ * @param target The target contract address.
15542
+ * @param data The calldata to send a transaction to the target contract.
15543
+ * @param value The amount of value to send to the target contract.
15544
+ */
15545
+ customExternalCall(target: Address, data: Hex, value: bigint): Promise<`0x${string}`>;
15538
15546
  }
@@ -1,10 +1,10 @@
1
1
  var n = Object.defineProperty;
2
- var s = (a, t, e) => t in a ? n(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e;
3
- var i = (a, t, e) => s(a, typeof t != "symbol" ? t + "" : t, e);
2
+ var s = (r, t, e) => t in r ? n(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
3
+ var i = (r, t, e) => s(r, typeof t != "symbol" ? t + "" : t, e);
4
4
  import { InstitutionalVault as o } from "../abis/mainnet/InstitutionalVault.js";
5
5
  import { V as c } from "../../constants-BweLzNUt.js";
6
6
  import { InvalidContractAddressError as h } from "../../errors/validation-errors.js";
7
- import { g as d } from "../../getContract-BES7gSby.js";
7
+ import { g as l } from "../../getContract-BES7gSby.js";
8
8
  class m {
9
9
  /**
10
10
  * Create the handler for the `InstitutionalVault` contract exposing
@@ -16,10 +16,10 @@ class m {
16
16
  * @param publicClient The public client to use for public
17
17
  * interactions.
18
18
  */
19
- constructor(t, e, r) {
19
+ constructor(t, e, a) {
20
20
  i(this, "viemChain");
21
21
  i(this, "address");
22
- this.walletClient = e, this.publicClient = r, this.viemChain = c[t];
22
+ this.walletClient = e, this.publicClient = a, this.viemChain = c[t];
23
23
  }
24
24
  /**
25
25
  * Set the address of the contract for this handler.
@@ -53,7 +53,7 @@ class m {
53
53
  }
54
54
  );
55
55
  const t = o, e = { public: this.publicClient, wallet: this.walletClient };
56
- return d({
56
+ return l({
57
57
  address: this.address,
58
58
  abi: t,
59
59
  client: e
@@ -338,8 +338,8 @@ class m {
338
338
  * @param receiver The address to receive the assets.
339
339
  * @param owner The owner of the shares.
340
340
  */
341
- redeem(t, e, r) {
342
- return this.getContract().write.redeem([t, e, r], {
341
+ redeem(t, e, a) {
342
+ return this.getContract().write.redeem([t, e, a], {
343
343
  account: this.walletClient.account,
344
344
  chain: this.viemChain
345
345
  });
@@ -366,9 +366,9 @@ class m {
366
366
  * @param signatures The signatures of the validators.
367
367
  * @param depositDataRoots The deposit data roots of the validators.
368
368
  */
369
- startNonRestakingValidators(t, e, r) {
369
+ startNonRestakingValidators(t, e, a) {
370
370
  return this.getContract().write.startNonRestakingValidators(
371
- [t, e, r],
371
+ [t, e, a],
372
372
  {
373
373
  account: this.walletClient.account,
374
374
  chain: this.viemChain
@@ -382,9 +382,9 @@ class m {
382
382
  * @param signatures The signatures of the validators.
383
383
  * @param depositDataRoots The deposit data roots of the validators.
384
384
  */
385
- startRestakingValidators(t, e, r) {
385
+ startRestakingValidators(t, e, a) {
386
386
  return this.getContract().write.startRestakingValidators(
387
- [t, e, r],
387
+ [t, e, a],
388
388
  {
389
389
  account: this.walletClient.account,
390
390
  chain: this.viemChain
@@ -398,8 +398,8 @@ class m {
398
398
  * @param receiver The address to receive the assets.
399
399
  * @param owner The owner of the assets.
400
400
  */
401
- withdraw(t, e, r) {
402
- return this.getContract().write.withdraw([t, e, r], {
401
+ withdraw(t, e, a) {
402
+ return this.getContract().write.withdraw([t, e, a], {
403
403
  account: this.walletClient.account,
404
404
  chain: this.viemChain
405
405
  });
@@ -447,8 +447,21 @@ class m {
447
447
  * @param to The address to transfer the value to.
448
448
  * @param value The amount of value to transfer.
449
449
  */
450
- transferFrom(t, e, r) {
451
- return this.getContract().write.transferFrom([t, e, r], {
450
+ transferFrom(t, e, a) {
451
+ return this.getContract().write.transferFrom([t, e, a], {
452
+ account: this.walletClient.account,
453
+ chain: this.viemChain
454
+ });
455
+ }
456
+ /**
457
+ * Call a custom external function.
458
+ *
459
+ * @param target The target contract address.
460
+ * @param data The calldata to send a transaction to the target contract.
461
+ * @param value The amount of value to send to the target contract.
462
+ */
463
+ customExternalCall(t, e, a) {
464
+ return this.getContract().write.customExternalCall([t, e, a], {
452
465
  account: this.walletClient.account,
453
466
  chain: this.viemChain
454
467
  });
@@ -1 +1 @@
1
- {"version":3,"file":"institutional-vault-handler.js","sources":["../../../lib/contracts/handlers/institutional-vault-handler.ts"],"sourcesContent":["import {\n Chain as ViemChain,\n WalletClient,\n PublicClient,\n getContract,\n GetContractReturnType,\n Address,\n} from 'viem';\nimport { InstitutionalVault } from '../abis/mainnet/InstitutionalVault';\nimport { Chain, VIEM_CHAINS } from '../../chains/constants';\nimport { InvalidContractAddressError } from '../../errors/validation-errors';\n\nexport type QueuedWithdrawal = {\n staker: Address;\n delegatedTo: Address;\n withdrawer: Address;\n nonce: bigint;\n startBlock: number;\n strategies: Address[];\n scaledShares: bigint[];\n};\n\n/**\n * Handler for the `InstitutionalVault` contract exposing methods to\n * interact with the contract.\n */\nexport class InstitutionalVaultHandler {\n private viemChain: ViemChain;\n private address?: Address;\n\n /**\n * Create the handler for the `InstitutionalVault` contract exposing\n * methods to interact with the contract.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n }\n\n /**\n * Set the address of the contract for this handler.\n *\n * @param address The address of the contract.\n * @returns The handler.\n */\n public withAddress(address: Address) {\n this.address = address;\n\n return this;\n }\n\n /**\n * Get the address of the contract for this handler.\n *\n * @returns The address of the contract.\n */\n public getAddress() {\n return this.address;\n }\n\n /**\n * Get the contract. This is a method because the typings are complex\n * and lost when trying to make it a member.\n *\n * @returns The viem contract.\n */\n public getContract() {\n if (!this.address) {\n throw new InvalidContractAddressError(\n `No address specified for the contract`,\n {\n fixMessage: `Set the contract address in the handler by using the setAddress method`,\n },\n );\n }\n\n const abi = InstitutionalVault;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({\n address: this.address,\n abi,\n client,\n }) as GetContractReturnType<typeof abi, typeof client, Address>;\n }\n\n /**\n * Get the beacon deposit contract address.\n *\n * @returns The beacon deposit contract address.\n */\n public getBeaconDepositContract() {\n return this.getContract().read.BEACON_DEPOSIT_CONTRACT();\n }\n\n /**\n * Get the eigen delegation manager contract address.\n *\n * @returns The eigen delegation manager.\n */\n public getEigenDelegationManager() {\n return this.getContract().read.EIGEN_DELEGATION_MANAGER();\n }\n\n /**\n * Get the eigen pod manager contract address.\n *\n * @returns The eigen pod manager contract address.\n */\n public getEigenPodManager() {\n return this.getContract().read.EIGEN_POD_MANAGER();\n }\n\n /**\n * Get the eigen pod address.\n *\n * @returns The eigen pod address.\n */\n public getEigenPod() {\n return this.getContract().read.getEigenPod();\n }\n\n /**\n * Get the allowance for the spender to spend the owner's tokens.\n *\n * @param owner The owner of the tokens.\n * @param spender The spender of the tokens.\n * @returns The allowance of the owner for the spender.\n */\n public allowance(owner: Address, spender: Address) {\n return this.getContract().read.allowance([owner, spender]);\n }\n\n /**\n * Approve the spender to spend the owner's tokens.\n *\n * @param spender The spender of the tokens.\n * @param amount The amount of tokens to approve.\n */\n public approve(spender: Address, amount: bigint) {\n return this.getContract().write.approve([spender, amount], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Get the asset of the vault.\n *\n * @returns The asset of the vault.\n */\n public asset() {\n return this.getContract().read.asset();\n }\n\n /**\n * Get the authority of the vault.\n *\n * @returns The authority of the vault.\n */\n public authority() {\n return this.getContract().read.authority();\n }\n\n /**\n * Get the balance of the address.\n *\n * @param address The address to get the balance of.\n * @returns The balance of the address.\n */\n public balanceOf(address: Address) {\n return this.getContract().read.balanceOf([address]);\n }\n\n /**\n * Get the number of decimals of the token.\n *\n * @returns The number of decimals of the token.\n */\n public decimals() {\n return this.getContract().read.decimals();\n }\n\n /**\n * Complete the queued withdrawals.\n *\n * @param withdrawals The withdrawals to complete.\n * @param receiveAsTokens Whether to receive the assets as tokens.\n */\n public completeQueuedWithdrawals(\n withdrawals: QueuedWithdrawal[],\n receiveAsTokens: boolean[],\n ) {\n return this.getContract().write.completeQueuedWithdrawals(\n [withdrawals, receiveAsTokens],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Convert shares to assets.\n *\n * @param shares The number of shares to convert.\n * @returns The number of assets.\n */\n public convertToAssets(shares: bigint) {\n return this.getContract().read.convertToAssets([shares]);\n }\n\n /**\n * Convert assets to shares.\n *\n * @param assets The number of assets to convert.\n * @returns The number of shares.\n */\n public convertToShares(assets: bigint) {\n return this.getContract().read.convertToShares([assets]);\n }\n\n /**\n * Deposit assets into the vault.\n *\n * @param assets The number of assets to deposit.\n * @param receiver The address to receive the shares.\n */\n public deposit(assets: bigint, receiver: Address) {\n return this.getContract().write.deposit([assets, receiver], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Deposit ETH into the vault.\n *\n * @param receiver The address to receive the shares.\n * @param value The amount of ETH to deposit.\n */\n public depositETH(receiver: Address, value: bigint) {\n return this.getContract().write.depositETH([receiver], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n value,\n });\n }\n\n /**\n * Get the non-restaked validator ETH.\n *\n * @returns The non-restaked validator ETH.\n */\n public getNonRestakedValidatorETH() {\n return this.getContract().read.getNonRestakedValidatorETH();\n }\n\n /**\n * Get the restaked validator ETH.\n *\n * @returns The restaked validator ETH.\n */\n public getRestakedValidatorETH() {\n return this.getContract().read.getRestakedValidatorETH();\n }\n\n /**\n * Get the withdrawal credentials.\n *\n * @returns The withdrawal credentials.\n */\n public getWithdrawalCredentials() {\n return this.getContract().read.getWithdrawalCredentials();\n }\n\n /**\n * Get the maximum deposit amount for the address.\n *\n * @param address The address to get the maximum deposit amount for.\n * @returns The maximum deposit amount for the address.\n */\n public maxDeposit(address: Address) {\n return this.getContract().read.maxDeposit([address]);\n }\n\n /**\n * Get the maximum mint amount for the address.\n *\n * @param address The address to get the maximum mint amount for.\n * @returns The maximum mint amount for the address.\n */\n public maxMint(address: Address) {\n return this.getContract().read.maxMint([address]);\n }\n\n /**\n * Get the maximum redeem amount for the address.\n *\n * @param address The address to get the maximum redeem amount for.\n * @returns The maximum redeem amount for the address.\n */\n public maxRedeem(address: Address) {\n return this.getContract().read.maxRedeem([address]);\n }\n\n /**\n * Get the maximum withdraw amount for the address.\n *\n * @param address The address to get the maximum withdraw amount for.\n * @returns The maximum withdraw amount for the address.\n */\n public maxWithdraw(address: Address) {\n return this.getContract().read.maxWithdraw([address]);\n }\n\n /**\n * Mint shares to the receiver.\n *\n * @param shares The number of shares to mint.\n * @param receiver The address to receive the shares.\n */\n public mint(shares: bigint, receiver: Address) {\n return this.getContract().write.mint([shares, receiver], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Get the name of the contract.\n *\n * @returns The name of the contract.\n */\n public name() {\n return this.getContract().read.name();\n }\n\n /**\n * Preview the deposit amount for the assets.\n *\n * @param assets The number of assets to deposit.\n * @returns The number of shares to receive.\n */\n public previewDeposit(assets: bigint) {\n return this.getContract().read.previewDeposit([assets]);\n }\n\n /**\n * Preview the mint amount for the shares.\n *\n * @param shares The number of shares to mint.\n * @returns The number of assets to receive.\n */\n public previewMint(shares: bigint) {\n return this.getContract().read.previewMint([shares]);\n }\n\n /**\n * Preview the redeem amount for the shares.\n *\n * @param shares The number of shares to redeem.\n * @returns The number of assets to receive.\n */\n public previewRedeem(shares: bigint) {\n return this.getContract().read.previewRedeem([shares]);\n }\n\n /**\n * Preview the withdraw amount for the shares.\n *\n * @param shares The number of shares to withdraw.\n * @returns The number of assets to receive.\n */\n public previewWithdraw(shares: bigint) {\n return this.getContract().read.previewWithdraw([shares]);\n }\n\n /**\n * Queue the withdrawals.\n *\n * @param shares The number of shares to withdraw.\n */\n public queueWithdrawals(shares: bigint) {\n return this.getContract().write.queueWithdrawals([shares], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Redeem the shares to the receiver.\n *\n * @param shares The number of shares to redeem.\n * @param receiver The address to receive the assets.\n * @param owner The owner of the shares.\n */\n public redeem(shares: bigint, receiver: Address, owner: Address) {\n return this.getContract().write.redeem([shares, receiver, owner], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Set the validators ETH.\n *\n * @param restakedValidatorsETH The amount of restaked validator ETH.\n * @param nonRestakedValidatorsETH The amount of non-restaked validator ETH.\n */\n public setValidatorsETH(\n restakedValidatorsETH: bigint,\n nonRestakedValidatorsETH: bigint,\n ) {\n return this.getContract().write.setValidatorsETH(\n [restakedValidatorsETH, nonRestakedValidatorsETH],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Start the non-restaking validators.\n *\n * @param pubKeys The public keys of the validators.\n * @param signatures The signatures of the validators.\n * @param depositDataRoots The deposit data roots of the validators.\n */\n public startNonRestakingValidators(\n pubKeys: Address[],\n signatures: Address[],\n depositDataRoots: Address[],\n ) {\n return this.getContract().write.startNonRestakingValidators(\n [pubKeys, signatures, depositDataRoots],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Start the restaking validators.\n *\n * @param pubKeys The public keys of the validators.\n * @param signatures The signatures of the validators.\n * @param depositDataRoots The deposit data roots of the validators.\n */\n public startRestakingValidators(\n pubKeys: Address[],\n signatures: Address[],\n depositDataRoots: Address[],\n ) {\n return this.getContract().write.startRestakingValidators(\n [pubKeys, signatures, depositDataRoots],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Withdraw the assets to the receiver.\n *\n * @param assets The number of assets to withdraw.\n * @param receiver The address to receive the assets.\n * @param owner The owner of the assets.\n */\n public withdraw(assets: bigint, receiver: Address, owner: Address) {\n return this.getContract().write.withdraw([assets, receiver, owner], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Get the symbol of the contract.\n *\n * @returns The symbol of the contract.\n */\n public symbol() {\n return this.getContract().read.symbol();\n }\n\n /**\n * Get the total assets of the vault.\n *\n * @returns The total assets of the vault.\n */\n public totalAssets() {\n return this.getContract().read.totalAssets();\n }\n\n /**\n * Get the total supply of the vault.\n *\n * @returns The total supply of the vault.\n */\n public totalSupply() {\n return this.getContract().read.totalSupply();\n }\n\n /**\n * Transfer the value to the to address.\n *\n * @param to The address to transfer the value to.\n * @param value The amount of value to transfer.\n */\n public transfer(to: Address, value: bigint) {\n return this.getContract().write.transfer([to, value], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Transfer the value from the from address to the to address.\n *\n * @param from The address to transfer the value from.\n * @param to The address to transfer the value to.\n * @param value The amount of value to transfer.\n */\n public transferFrom(from: Address, to: Address, value: bigint) {\n return this.getContract().write.transferFrom([from, to, value], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n}\n"],"names":["InstitutionalVaultHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","address","InvalidContractAddressError","abi","InstitutionalVault","client","getContract","owner","spender","amount","withdrawals","receiveAsTokens","shares","assets","receiver","value","restakedValidatorsETH","nonRestakedValidatorsETH","pubKeys","signatures","depositDataRoots","to","from"],"mappings":"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"}
1
+ {"version":3,"file":"institutional-vault-handler.js","sources":["../../../lib/contracts/handlers/institutional-vault-handler.ts"],"sourcesContent":["import {\n Chain as ViemChain,\n WalletClient,\n PublicClient,\n getContract,\n GetContractReturnType,\n Address,\n Hex,\n} from 'viem';\nimport { InstitutionalVault } from '../abis/mainnet/InstitutionalVault';\nimport { Chain, VIEM_CHAINS } from '../../chains/constants';\nimport { InvalidContractAddressError } from '../../errors/validation-errors';\n\nexport type QueuedWithdrawal = {\n staker: Address;\n delegatedTo: Address;\n withdrawer: Address;\n nonce: bigint;\n startBlock: number;\n strategies: Address[];\n scaledShares: bigint[];\n};\n\n/**\n * Handler for the `InstitutionalVault` contract exposing methods to\n * interact with the contract.\n */\nexport class InstitutionalVaultHandler {\n private viemChain: ViemChain;\n private address?: Address;\n\n /**\n * Create the handler for the `InstitutionalVault` contract exposing\n * methods to interact with the contract.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n }\n\n /**\n * Set the address of the contract for this handler.\n *\n * @param address The address of the contract.\n * @returns The handler.\n */\n public withAddress(address: Address) {\n this.address = address;\n\n return this;\n }\n\n /**\n * Get the address of the contract for this handler.\n *\n * @returns The address of the contract.\n */\n public getAddress() {\n return this.address;\n }\n\n /**\n * Get the contract. This is a method because the typings are complex\n * and lost when trying to make it a member.\n *\n * @returns The viem contract.\n */\n public getContract() {\n if (!this.address) {\n throw new InvalidContractAddressError(\n `No address specified for the contract`,\n {\n fixMessage: `Set the contract address in the handler by using the setAddress method`,\n },\n );\n }\n\n const abi = InstitutionalVault;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({\n address: this.address,\n abi,\n client,\n }) as GetContractReturnType<typeof abi, typeof client, Address>;\n }\n\n /**\n * Get the beacon deposit contract address.\n *\n * @returns The beacon deposit contract address.\n */\n public getBeaconDepositContract() {\n return this.getContract().read.BEACON_DEPOSIT_CONTRACT();\n }\n\n /**\n * Get the eigen delegation manager contract address.\n *\n * @returns The eigen delegation manager.\n */\n public getEigenDelegationManager() {\n return this.getContract().read.EIGEN_DELEGATION_MANAGER();\n }\n\n /**\n * Get the eigen pod manager contract address.\n *\n * @returns The eigen pod manager contract address.\n */\n public getEigenPodManager() {\n return this.getContract().read.EIGEN_POD_MANAGER();\n }\n\n /**\n * Get the eigen pod address.\n *\n * @returns The eigen pod address.\n */\n public getEigenPod() {\n return this.getContract().read.getEigenPod();\n }\n\n /**\n * Get the allowance for the spender to spend the owner's tokens.\n *\n * @param owner The owner of the tokens.\n * @param spender The spender of the tokens.\n * @returns The allowance of the owner for the spender.\n */\n public allowance(owner: Address, spender: Address) {\n return this.getContract().read.allowance([owner, spender]);\n }\n\n /**\n * Approve the spender to spend the owner's tokens.\n *\n * @param spender The spender of the tokens.\n * @param amount The amount of tokens to approve.\n */\n public approve(spender: Address, amount: bigint) {\n return this.getContract().write.approve([spender, amount], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Get the asset of the vault.\n *\n * @returns The asset of the vault.\n */\n public asset() {\n return this.getContract().read.asset();\n }\n\n /**\n * Get the authority of the vault.\n *\n * @returns The authority of the vault.\n */\n public authority() {\n return this.getContract().read.authority();\n }\n\n /**\n * Get the balance of the address.\n *\n * @param address The address to get the balance of.\n * @returns The balance of the address.\n */\n public balanceOf(address: Address) {\n return this.getContract().read.balanceOf([address]);\n }\n\n /**\n * Get the number of decimals of the token.\n *\n * @returns The number of decimals of the token.\n */\n public decimals() {\n return this.getContract().read.decimals();\n }\n\n /**\n * Complete the queued withdrawals.\n *\n * @param withdrawals The withdrawals to complete.\n * @param receiveAsTokens Whether to receive the assets as tokens.\n */\n public completeQueuedWithdrawals(\n withdrawals: QueuedWithdrawal[],\n receiveAsTokens: boolean[],\n ) {\n return this.getContract().write.completeQueuedWithdrawals(\n [withdrawals, receiveAsTokens],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Convert shares to assets.\n *\n * @param shares The number of shares to convert.\n * @returns The number of assets.\n */\n public convertToAssets(shares: bigint) {\n return this.getContract().read.convertToAssets([shares]);\n }\n\n /**\n * Convert assets to shares.\n *\n * @param assets The number of assets to convert.\n * @returns The number of shares.\n */\n public convertToShares(assets: bigint) {\n return this.getContract().read.convertToShares([assets]);\n }\n\n /**\n * Deposit assets into the vault.\n *\n * @param assets The number of assets to deposit.\n * @param receiver The address to receive the shares.\n */\n public deposit(assets: bigint, receiver: Address) {\n return this.getContract().write.deposit([assets, receiver], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Deposit ETH into the vault.\n *\n * @param receiver The address to receive the shares.\n * @param value The amount of ETH to deposit.\n */\n public depositETH(receiver: Address, value: bigint) {\n return this.getContract().write.depositETH([receiver], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n value,\n });\n }\n\n /**\n * Get the non-restaked validator ETH.\n *\n * @returns The non-restaked validator ETH.\n */\n public getNonRestakedValidatorETH() {\n return this.getContract().read.getNonRestakedValidatorETH();\n }\n\n /**\n * Get the restaked validator ETH.\n *\n * @returns The restaked validator ETH.\n */\n public getRestakedValidatorETH() {\n return this.getContract().read.getRestakedValidatorETH();\n }\n\n /**\n * Get the withdrawal credentials.\n *\n * @returns The withdrawal credentials.\n */\n public getWithdrawalCredentials() {\n return this.getContract().read.getWithdrawalCredentials();\n }\n\n /**\n * Get the maximum deposit amount for the address.\n *\n * @param address The address to get the maximum deposit amount for.\n * @returns The maximum deposit amount for the address.\n */\n public maxDeposit(address: Address) {\n return this.getContract().read.maxDeposit([address]);\n }\n\n /**\n * Get the maximum mint amount for the address.\n *\n * @param address The address to get the maximum mint amount for.\n * @returns The maximum mint amount for the address.\n */\n public maxMint(address: Address) {\n return this.getContract().read.maxMint([address]);\n }\n\n /**\n * Get the maximum redeem amount for the address.\n *\n * @param address The address to get the maximum redeem amount for.\n * @returns The maximum redeem amount for the address.\n */\n public maxRedeem(address: Address) {\n return this.getContract().read.maxRedeem([address]);\n }\n\n /**\n * Get the maximum withdraw amount for the address.\n *\n * @param address The address to get the maximum withdraw amount for.\n * @returns The maximum withdraw amount for the address.\n */\n public maxWithdraw(address: Address) {\n return this.getContract().read.maxWithdraw([address]);\n }\n\n /**\n * Mint shares to the receiver.\n *\n * @param shares The number of shares to mint.\n * @param receiver The address to receive the shares.\n */\n public mint(shares: bigint, receiver: Address) {\n return this.getContract().write.mint([shares, receiver], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Get the name of the contract.\n *\n * @returns The name of the contract.\n */\n public name() {\n return this.getContract().read.name();\n }\n\n /**\n * Preview the deposit amount for the assets.\n *\n * @param assets The number of assets to deposit.\n * @returns The number of shares to receive.\n */\n public previewDeposit(assets: bigint) {\n return this.getContract().read.previewDeposit([assets]);\n }\n\n /**\n * Preview the mint amount for the shares.\n *\n * @param shares The number of shares to mint.\n * @returns The number of assets to receive.\n */\n public previewMint(shares: bigint) {\n return this.getContract().read.previewMint([shares]);\n }\n\n /**\n * Preview the redeem amount for the shares.\n *\n * @param shares The number of shares to redeem.\n * @returns The number of assets to receive.\n */\n public previewRedeem(shares: bigint) {\n return this.getContract().read.previewRedeem([shares]);\n }\n\n /**\n * Preview the withdraw amount for the shares.\n *\n * @param shares The number of shares to withdraw.\n * @returns The number of assets to receive.\n */\n public previewWithdraw(shares: bigint) {\n return this.getContract().read.previewWithdraw([shares]);\n }\n\n /**\n * Queue the withdrawals.\n *\n * @param shares The number of shares to withdraw.\n */\n public queueWithdrawals(shares: bigint) {\n return this.getContract().write.queueWithdrawals([shares], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Redeem the shares to the receiver.\n *\n * @param shares The number of shares to redeem.\n * @param receiver The address to receive the assets.\n * @param owner The owner of the shares.\n */\n public redeem(shares: bigint, receiver: Address, owner: Address) {\n return this.getContract().write.redeem([shares, receiver, owner], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Set the validators ETH.\n *\n * @param restakedValidatorsETH The amount of restaked validator ETH.\n * @param nonRestakedValidatorsETH The amount of non-restaked validator ETH.\n */\n public setValidatorsETH(\n restakedValidatorsETH: bigint,\n nonRestakedValidatorsETH: bigint,\n ) {\n return this.getContract().write.setValidatorsETH(\n [restakedValidatorsETH, nonRestakedValidatorsETH],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Start the non-restaking validators.\n *\n * @param pubKeys The public keys of the validators.\n * @param signatures The signatures of the validators.\n * @param depositDataRoots The deposit data roots of the validators.\n */\n public startNonRestakingValidators(\n pubKeys: Address[],\n signatures: Address[],\n depositDataRoots: Address[],\n ) {\n return this.getContract().write.startNonRestakingValidators(\n [pubKeys, signatures, depositDataRoots],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Start the restaking validators.\n *\n * @param pubKeys The public keys of the validators.\n * @param signatures The signatures of the validators.\n * @param depositDataRoots The deposit data roots of the validators.\n */\n public startRestakingValidators(\n pubKeys: Address[],\n signatures: Address[],\n depositDataRoots: Address[],\n ) {\n return this.getContract().write.startRestakingValidators(\n [pubKeys, signatures, depositDataRoots],\n {\n account: this.walletClient.account!,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Withdraw the assets to the receiver.\n *\n * @param assets The number of assets to withdraw.\n * @param receiver The address to receive the assets.\n * @param owner The owner of the assets.\n */\n public withdraw(assets: bigint, receiver: Address, owner: Address) {\n return this.getContract().write.withdraw([assets, receiver, owner], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Get the symbol of the contract.\n *\n * @returns The symbol of the contract.\n */\n public symbol() {\n return this.getContract().read.symbol();\n }\n\n /**\n * Get the total assets of the vault.\n *\n * @returns The total assets of the vault.\n */\n public totalAssets() {\n return this.getContract().read.totalAssets();\n }\n\n /**\n * Get the total supply of the vault.\n *\n * @returns The total supply of the vault.\n */\n public totalSupply() {\n return this.getContract().read.totalSupply();\n }\n\n /**\n * Transfer the value to the to address.\n *\n * @param to The address to transfer the value to.\n * @param value The amount of value to transfer.\n */\n public transfer(to: Address, value: bigint) {\n return this.getContract().write.transfer([to, value], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Transfer the value from the from address to the to address.\n *\n * @param from The address to transfer the value from.\n * @param to The address to transfer the value to.\n * @param value The amount of value to transfer.\n */\n public transferFrom(from: Address, to: Address, value: bigint) {\n return this.getContract().write.transferFrom([from, to, value], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n\n /**\n * Call a custom external function.\n *\n * @param target The target contract address.\n * @param data The calldata to send a transaction to the target contract.\n * @param value The amount of value to send to the target contract.\n */\n public customExternalCall(target: Address, data: Hex, value: bigint) {\n return this.getContract().write.customExternalCall([target, data, value], {\n account: this.walletClient.account!,\n chain: this.viemChain,\n });\n }\n}\n"],"names":["InstitutionalVaultHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","address","InvalidContractAddressError","abi","InstitutionalVault","client","getContract","owner","spender","amount","withdrawals","receiveAsTokens","shares","assets","receiver","value","restakedValidatorsETH","nonRestakedValidatorsETH","pubKeys","signatures","depositDataRoots","to","from","target","data"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../constants-JN89aXws.cjs");var C=(e=>(e.USDT="USDT",e.USDC="USDC",e.DAI="DAI",e.WETH="WETH",e.stETH="stETH",e.wstETH="wstETH",e.eETH="eETH",e.cbETH="cbETH",e.ALT="ALT",e.pufETHwstE="pufETHwstE",e.pufETH="pufETH",e.xPufETH="xPufETH",e.ctTACpufETH="ctTACpufETH",e.WBTC="WBTC",e.LBTC="LBTC",e.tBTC="tBTC",e.cbBTC="cbBTC",e.pumpBTC="pumpBTC",e.SolvBTC="SolvBTC",e.PUFFER="PUFFER",e.vePUFFER="vePUFFER",e.CARROT="CARROT",e.lvlUSD="lvlUSD",e.slvlUSD="slvlUSD",e.mtwCARROT="mtwCARROT",e.sCARROT="sCARROT",e.LINK="LINK",e.TEST="TEST",e.VT="VT",e.EIGEN="EIGEN",e))(C||{}),i=(e=>(e.unifiETH="unifiETH",e.unifiUSD="unifiUSD",e.unifiBTC="unifiBTC",e.pufETHs="pufETHs",e))(i||{});const n={VT:{[a.Chain.Mainnet]:"0x7D26AD6F6BA9D6bA1de0218Ae5e20CD3a273a55A",[a.Chain.Holesky]:"0xB028194785178a94Fe608994A4d5AD84c285A640"},TEST:{[a.Chain.Sepolia]:"0xd26e3540a0a368845b234736a0700e0a5a821bba",[a.Chain.OptimismSepolia]:"0x7Fa13D6CB44164ea09dF8BCc673A8849092D435b"},LINK:{[a.Chain.BaseSepolia]:"0xe4ab69c077896252fafbd49efd26b5d171a32410",[a.Chain.OptimismSepolia]:"0xE4aB69C077896252FAFBD49EFD26B5D171A32410"},USDT:{[a.Chain.Mainnet]:"0xdac17f958d2ee523a2206206994597c13d831ec7",[a.Chain.Holesky]:"0xd5bef2c64f418fd460319521d37862327122e3bc",[a.Chain.Sepolia]:"0xaa8e23fb1079ea71e0a56f48a2aa51851d8433d0"},USDC:{[a.Chain.Mainnet]:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",[a.Chain.Holesky]:"0x64Cc0de0429bcb87e875905a0c313ec88f6d1d3E"},DAI:{[a.Chain.Mainnet]:"0x6b175474e89094c44da98b954eedeac495271d0f",[a.Chain.Holesky]:"0x4478905505ddfb7eA1c8A9f46eAEC3695cE542ac"},WETH:{[a.Chain.Mainnet]:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",[a.Chain.Holesky]:"0x1d181cBd1825e9eBC6AD966878D555A7215FF4F0"},stETH:{[a.Chain.Mainnet]:"0xae7ab96520de3a18e5e111b5eaab095312d7fe84",[a.Chain.Holesky]:"0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034"},wstETH:{[a.Chain.Mainnet]:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",[a.Chain.Holesky]:"0x8d09a4502Cc8Cf1547aD300E066060D043f6982D"},eETH:{[a.Chain.Mainnet]:"0x35fa164735182de50811e8e2e824cfb9b6118ac2",[a.Chain.Holesky]:"0x7ba2ee123b5977e3da040e1eacb3a61c82c17876"},cbETH:{[a.Chain.Mainnet]:"0xbe9895146f7af43049ca1c1ae358b0541ea49704",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},ALT:{[a.Chain.Mainnet]:"0x8457ca5040ad67fdebbcc8edce889a335bc0fbfb",[a.Chain.Holesky]:"0xaf5588a571b42c7e50bd440d80f9bf94a4db94ee"},pufETHwstE:{[a.Chain.Mainnet]:"0xeeda34a377dd0ca676b9511ee1324974fa8d980d",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufETH:{[a.Chain.Mainnet]:"0xd9a442856c234a39a81a089c06451ebaa4306a72",[a.Chain.Holesky]:"0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9",[a.Chain.Soneium]:"0x6c460b2c6D6719562D5dA43E5152B375e79B9A8B",[a.Chain.Arbitrum]:"0x37D6382B6889cCeF8d6871A8b60E667115eDDBcF",[a.Chain.Berachain]:"0x417b0Ff8358Eb72867Da92225CaB99BCD5e6F205"},xPufETH:{[a.Chain.Mainnet]:"0xD7D2802f6b19843ac4DfE25022771FD83b5A7464",[a.Chain.Base]:"0x23dA5F2d509cb43A59d43C108a43eDf34510eff1",[a.Chain.Bsc]:"0x64274835D88F5c0215da8AADd9A5f2D2A2569381",[a.Chain.ApeChain]:"0x6234E5ef39B12EFdFcbd99dd7F452F27F3fEAE3b",[a.Chain.Zircuit]:"0x9346A5043C590133FE900aec643D9622EDddBA57"},ctTACpufETH:{[a.Chain.Mainnet]:"0x78f314241df1ac151bfd0413eeb51979515f6abd",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},WBTC:{[a.Chain.Mainnet]:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},LBTC:{[a.Chain.Mainnet]:"0x8236a87084f8b84306f72007f36f2618a5634494",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},tBTC:{[a.Chain.Mainnet]:"0x18084fbA666a33d37592fA2633fD49a74DD93a88",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},cbBTC:{[a.Chain.Mainnet]:"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pumpBTC:{[a.Chain.Mainnet]:"0xf469fbd2abcd6b9de8e169d128226c0fc90a012e",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},SolvBTC:{[a.Chain.Mainnet]:"0x7a56e1c57c7475ccf742a1832b028f0456652f97",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},PUFFER:{[a.Chain.Mainnet]:"0x4d1c297d39c5c1277964d0e3f8aa901493664530",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},vePUFFER:{[a.Chain.Mainnet]:"0xA55eD5808aeCDF23AE3782C1443185f5D2363ce7"},CARROT:{[a.Chain.Mainnet]:"0x282a69142bac47855c3fbe1693fcc4ba3b4d5ed6",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},lvlUSD:{[a.Chain.Mainnet]:"0x7C1156E515aA1A2E851674120074968C905aAF37",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},slvlUSD:{[a.Chain.Mainnet]:"0x4737d9b4592b40d51e110b94c9c043c6654067ae",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},mtwCARROT:{[a.Chain.Mainnet]:"0x8A5A5DE9db5770123Ff2145F59e9F20047f0A8EC",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},sCARROT:{[a.Chain.Mainnet]:"0x99c599227c65132822f0290d9e5b4b0430d6c0d6",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},EIGEN:{[a.Chain.Mainnet]:"0xec53bF9167f50cDEB3Ae105f56099aaaB9061F83"},unifiETH:{[a.Chain.Mainnet]:"0x196ead472583bc1e9af7a05f860d9857e1bd3dcc",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},unifiUSD:{[a.Chain.Mainnet]:"0x82c40e07277eBb92935f79cE92268F80dDc7caB4",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},unifiBTC:{[a.Chain.Mainnet]:"0x170d847a8320f3b6a77ee15b0cae430e3ec933a0",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufETHs:{[a.Chain.Mainnet]:"0x62a4ce0722ee65635c0f8339dd814d549b6f6735",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"}},c={USDT:"",USDC:"",DAI:"",WETH:"",stETH:"2",wstETH:"1",eETH:"1",cbETH:"2",ALT:"1",pufETHwstE:"v7.0.0",pufETH:"1",xPufETH:"1",ctTACpufETH:"",WBTC:"",LBTC:"",tBTC:"",cbBTC:"",pumpBTC:"",SolvBTC:"",PUFFER:"1",vePUFFER:"1",CARROT:"1",lvlUSD:"1",slvlUSD:"",mtwCARROT:"",sCARROT:"",LINK:"",TEST:"",VT:"1",EIGEN:"1",unifiETH:"1",unifiUSD:"1",unifiBTC:"1",pufETHs:"1"},f={pufETHwstE:{[a.Chain.Mainnet]:"0x0e986ed5610121905f03fd3850cebcc00f66166fc3ab760acb4e087d735d9457",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000000000000000000000000000"}};exports.TOKENS_ADDRESSES=n;exports.TOKENS_PERMIT_VERSION=c;exports.TOKENS_SALT=f;exports.Token=C;exports.UnifiToken=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../constants-JN89aXws.cjs");var C=(e=>(e.USDT="USDT",e.USDC="USDC",e.DAI="DAI",e.WETH="WETH",e.stETH="stETH",e.wstETH="wstETH",e.eETH="eETH",e.cbETH="cbETH",e.ALT="ALT",e.pufETHwstE="pufETHwstE",e.pufETH="pufETH",e.xPufETH="xPufETH",e.ctTACpufETH="ctTACpufETH",e.WBTC="WBTC",e.LBTC="LBTC",e.tBTC="tBTC",e.cbBTC="cbBTC",e.pumpBTC="pumpBTC",e.SolvBTC="SolvBTC",e.PUFFER="PUFFER",e.vePUFFER="vePUFFER",e.CARROT="CARROT",e.lvlUSD="lvlUSD",e.slvlUSD="slvlUSD",e.mtwCARROT="mtwCARROT",e.sCARROT="sCARROT",e.LINK="LINK",e.TEST="TEST",e.VT="VT",e.EIGEN="EIGEN",e))(C||{}),i=(e=>(e.unifiETH="unifiETH",e.unifiUSD="unifiUSD",e.unifiBTC="unifiBTC",e.pufETHs="pufETHs",e))(i||{});const n={VT:{[a.Chain.Mainnet]:"0x7D26AD6F6BA9D6bA1de0218Ae5e20CD3a273a55A",[a.Chain.Holesky]:"0xB028194785178a94Fe608994A4d5AD84c285A640"},TEST:{[a.Chain.Sepolia]:"0xd26e3540a0a368845b234736a0700e0a5a821bba",[a.Chain.OptimismSepolia]:"0x7Fa13D6CB44164ea09dF8BCc673A8849092D435b"},LINK:{[a.Chain.BaseSepolia]:"0xe4ab69c077896252fafbd49efd26b5d171a32410",[a.Chain.OptimismSepolia]:"0xE4aB69C077896252FAFBD49EFD26B5D171A32410"},USDT:{[a.Chain.Mainnet]:"0xdac17f958d2ee523a2206206994597c13d831ec7",[a.Chain.Holesky]:"0xd5bef2c64f418fd460319521d37862327122e3bc",[a.Chain.Sepolia]:"0xaa8e23fb1079ea71e0a56f48a2aa51851d8433d0"},USDC:{[a.Chain.Mainnet]:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",[a.Chain.Holesky]:"0x64Cc0de0429bcb87e875905a0c313ec88f6d1d3E"},DAI:{[a.Chain.Mainnet]:"0x6b175474e89094c44da98b954eedeac495271d0f",[a.Chain.Holesky]:"0x4478905505ddfb7eA1c8A9f46eAEC3695cE542ac"},WETH:{[a.Chain.Mainnet]:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",[a.Chain.Holesky]:"0x1d181cBd1825e9eBC6AD966878D555A7215FF4F0",[a.Chain.Hoodi]:"0x251609d3e04165CA5CfaBa5DEE70A4e47863D060"},stETH:{[a.Chain.Mainnet]:"0xae7ab96520de3a18e5e111b5eaab095312d7fe84",[a.Chain.Holesky]:"0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034"},wstETH:{[a.Chain.Mainnet]:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",[a.Chain.Holesky]:"0x8d09a4502Cc8Cf1547aD300E066060D043f6982D"},eETH:{[a.Chain.Mainnet]:"0x35fa164735182de50811e8e2e824cfb9b6118ac2",[a.Chain.Holesky]:"0x7ba2ee123b5977e3da040e1eacb3a61c82c17876"},cbETH:{[a.Chain.Mainnet]:"0xbe9895146f7af43049ca1c1ae358b0541ea49704",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},ALT:{[a.Chain.Mainnet]:"0x8457ca5040ad67fdebbcc8edce889a335bc0fbfb",[a.Chain.Holesky]:"0xaf5588a571b42c7e50bd440d80f9bf94a4db94ee"},pufETHwstE:{[a.Chain.Mainnet]:"0xeeda34a377dd0ca676b9511ee1324974fa8d980d",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufETH:{[a.Chain.Mainnet]:"0xd9a442856c234a39a81a089c06451ebaa4306a72",[a.Chain.Holesky]:"0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9",[a.Chain.Soneium]:"0x6c460b2c6D6719562D5dA43E5152B375e79B9A8B",[a.Chain.Arbitrum]:"0x37D6382B6889cCeF8d6871A8b60E667115eDDBcF",[a.Chain.Berachain]:"0x417b0Ff8358Eb72867Da92225CaB99BCD5e6F205"},xPufETH:{[a.Chain.Mainnet]:"0xD7D2802f6b19843ac4DfE25022771FD83b5A7464",[a.Chain.Base]:"0x23dA5F2d509cb43A59d43C108a43eDf34510eff1",[a.Chain.Bsc]:"0x64274835D88F5c0215da8AADd9A5f2D2A2569381",[a.Chain.ApeChain]:"0x6234E5ef39B12EFdFcbd99dd7F452F27F3fEAE3b",[a.Chain.Zircuit]:"0x9346A5043C590133FE900aec643D9622EDddBA57"},ctTACpufETH:{[a.Chain.Mainnet]:"0x78f314241df1ac151bfd0413eeb51979515f6abd",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},WBTC:{[a.Chain.Mainnet]:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},LBTC:{[a.Chain.Mainnet]:"0x8236a87084f8b84306f72007f36f2618a5634494",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},tBTC:{[a.Chain.Mainnet]:"0x18084fbA666a33d37592fA2633fD49a74DD93a88",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},cbBTC:{[a.Chain.Mainnet]:"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pumpBTC:{[a.Chain.Mainnet]:"0xf469fbd2abcd6b9de8e169d128226c0fc90a012e",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},SolvBTC:{[a.Chain.Mainnet]:"0x7a56e1c57c7475ccf742a1832b028f0456652f97",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},PUFFER:{[a.Chain.Mainnet]:"0x4d1c297d39c5c1277964d0e3f8aa901493664530",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},vePUFFER:{[a.Chain.Mainnet]:"0xA55eD5808aeCDF23AE3782C1443185f5D2363ce7"},CARROT:{[a.Chain.Mainnet]:"0x282a69142bac47855c3fbe1693fcc4ba3b4d5ed6",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},lvlUSD:{[a.Chain.Mainnet]:"0x7C1156E515aA1A2E851674120074968C905aAF37",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},slvlUSD:{[a.Chain.Mainnet]:"0x4737d9b4592b40d51e110b94c9c043c6654067ae",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},mtwCARROT:{[a.Chain.Mainnet]:"0x8A5A5DE9db5770123Ff2145F59e9F20047f0A8EC",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},sCARROT:{[a.Chain.Mainnet]:"0x99c599227c65132822f0290d9e5b4b0430d6c0d6",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},EIGEN:{[a.Chain.Mainnet]:"0xec53bF9167f50cDEB3Ae105f56099aaaB9061F83"},unifiETH:{[a.Chain.Mainnet]:"0x196ead472583bc1e9af7a05f860d9857e1bd3dcc",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},unifiUSD:{[a.Chain.Mainnet]:"0x82c40e07277eBb92935f79cE92268F80dDc7caB4",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},unifiBTC:{[a.Chain.Mainnet]:"0x170d847a8320f3b6a77ee15b0cae430e3ec933a0",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufETHs:{[a.Chain.Mainnet]:"0x62a4ce0722ee65635c0f8339dd814d549b6f6735",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"}},c={USDT:"",USDC:"",DAI:"",WETH:"",stETH:"2",wstETH:"1",eETH:"1",cbETH:"2",ALT:"1",pufETHwstE:"v7.0.0",pufETH:"1",xPufETH:"1",ctTACpufETH:"",WBTC:"",LBTC:"",tBTC:"",cbBTC:"",pumpBTC:"",SolvBTC:"",PUFFER:"1",vePUFFER:"1",CARROT:"1",lvlUSD:"1",slvlUSD:"",mtwCARROT:"",sCARROT:"",LINK:"",TEST:"",VT:"1",EIGEN:"1",unifiETH:"1",unifiUSD:"1",unifiBTC:"1",pufETHs:"1"},f={pufETHwstE:{[a.Chain.Mainnet]:"0x0e986ed5610121905f03fd3850cebcc00f66166fc3ab760acb4e087d735d9457",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000000000000000000000000000"}};exports.TOKENS_ADDRESSES=n;exports.TOKENS_PERMIT_VERSION=c;exports.TOKENS_SALT=f;exports.Token=C;exports.UnifiToken=i;
2
2
  //# sourceMappingURL=tokens.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.cjs","sources":["../../lib/contracts/tokens.ts"],"sourcesContent":["import { Address } from 'viem';\nimport { Chain } from '../chains/constants';\n\nexport enum Token {\n USDT = 'USDT',\n USDC = 'USDC',\n DAI = 'DAI',\n WETH = 'WETH',\n stETH = 'stETH',\n wstETH = 'wstETH',\n eETH = 'eETH',\n cbETH = 'cbETH',\n ALT = 'ALT',\n pufETHwstE = 'pufETHwstE',\n pufETH = 'pufETH',\n xPufETH = 'xPufETH',\n ctTACpufETH = 'ctTACpufETH',\n WBTC = 'WBTC',\n LBTC = 'LBTC',\n tBTC = 'tBTC',\n cbBTC = 'cbBTC',\n pumpBTC = 'pumpBTC',\n SolvBTC = 'SolvBTC',\n PUFFER = 'PUFFER',\n vePUFFER = 'vePUFFER',\n CARROT = 'CARROT',\n lvlUSD = 'lvlUSD',\n slvlUSD = 'slvlUSD',\n mtwCARROT = 'mtwCARROT',\n sCARROT = 'sCARROT',\n LINK = 'LINK',\n TEST = 'TEST',\n VT = 'VT',\n EIGEN = 'EIGEN',\n}\n\nexport enum UnifiToken {\n unifiETH = 'unifiETH',\n unifiUSD = 'unifiUSD',\n unifiBTC = 'unifiBTC',\n // Symbiotic pufETH.\n pufETHs = 'pufETHs',\n}\n\nexport type AnyToken = Token | UnifiToken;\n\nexport const TOKENS_ADDRESSES: {\n [key in AnyToken]: { [chain in Chain]: Address };\n} = {\n [Token.VT]: {\n [Chain.Mainnet]: '0x7D26AD6F6BA9D6bA1de0218Ae5e20CD3a273a55A',\n [Chain.Holesky]: '0xB028194785178a94Fe608994A4d5AD84c285A640',\n },\n [Token.TEST]: {\n [Chain.Sepolia]: '0xd26e3540a0a368845b234736a0700e0a5a821bba',\n [Chain.OptimismSepolia]: '0x7Fa13D6CB44164ea09dF8BCc673A8849092D435b',\n },\n [Token.LINK]: {\n [Chain.BaseSepolia]: '0xe4ab69c077896252fafbd49efd26b5d171a32410',\n [Chain.OptimismSepolia]: '0xE4aB69C077896252FAFBD49EFD26B5D171A32410',\n },\n [Token.USDT]: {\n [Chain.Mainnet]: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n [Chain.Holesky]: '0xd5bef2c64f418fd460319521d37862327122e3bc',\n [Chain.Sepolia]: '0xaa8e23fb1079ea71e0a56f48a2aa51851d8433d0',\n },\n [Token.USDC]: {\n [Chain.Mainnet]: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n [Chain.Holesky]: '0x64Cc0de0429bcb87e875905a0c313ec88f6d1d3E',\n },\n [Token.DAI]: {\n [Chain.Mainnet]: '0x6b175474e89094c44da98b954eedeac495271d0f',\n [Chain.Holesky]: '0x4478905505ddfb7eA1c8A9f46eAEC3695cE542ac',\n },\n [Token.WETH]: {\n [Chain.Mainnet]: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n [Chain.Holesky]: '0x1d181cBd1825e9eBC6AD966878D555A7215FF4F0',\n },\n [Token.stETH]: {\n [Chain.Mainnet]: '0xae7ab96520de3a18e5e111b5eaab095312d7fe84',\n [Chain.Holesky]: '0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034',\n },\n [Token.wstETH]: {\n [Chain.Mainnet]: '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0',\n [Chain.Holesky]: '0x8d09a4502Cc8Cf1547aD300E066060D043f6982D',\n },\n [Token.eETH]: {\n [Chain.Mainnet]: '0x35fa164735182de50811e8e2e824cfb9b6118ac2',\n [Chain.Holesky]: '0x7ba2ee123b5977e3da040e1eacb3a61c82c17876',\n },\n [Token.cbETH]: {\n [Chain.Mainnet]: '0xbe9895146f7af43049ca1c1ae358b0541ea49704',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.ALT]: {\n [Chain.Mainnet]: '0x8457ca5040ad67fdebbcc8edce889a335bc0fbfb',\n [Chain.Holesky]: '0xaf5588a571b42c7e50bd440d80f9bf94a4db94ee',\n },\n [Token.pufETHwstE]: {\n [Chain.Mainnet]: '0xeeda34a377dd0ca676b9511ee1324974fa8d980d',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.pufETH]: {\n [Chain.Mainnet]: '0xd9a442856c234a39a81a089c06451ebaa4306a72',\n [Chain.Holesky]: '0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9',\n [Chain.Soneium]: '0x6c460b2c6D6719562D5dA43E5152B375e79B9A8B',\n [Chain.Arbitrum]: '0x37D6382B6889cCeF8d6871A8b60E667115eDDBcF',\n [Chain.Berachain]: '0x417b0Ff8358Eb72867Da92225CaB99BCD5e6F205',\n },\n [Token.xPufETH]: {\n [Chain.Mainnet]: '0xD7D2802f6b19843ac4DfE25022771FD83b5A7464',\n [Chain.Base]: '0x23dA5F2d509cb43A59d43C108a43eDf34510eff1',\n [Chain.Bsc]: '0x64274835D88F5c0215da8AADd9A5f2D2A2569381',\n [Chain.ApeChain]: '0x6234E5ef39B12EFdFcbd99dd7F452F27F3fEAE3b',\n [Chain.Zircuit]: '0x9346A5043C590133FE900aec643D9622EDddBA57',\n },\n [Token.ctTACpufETH]: {\n [Chain.Mainnet]: '0x78f314241df1ac151bfd0413eeb51979515f6abd',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.WBTC]: {\n [Chain.Mainnet]: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.LBTC]: {\n [Chain.Mainnet]: '0x8236a87084f8b84306f72007f36f2618a5634494',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.tBTC]: {\n [Chain.Mainnet]: '0x18084fbA666a33d37592fA2633fD49a74DD93a88',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.cbBTC]: {\n [Chain.Mainnet]: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.pumpBTC]: {\n [Chain.Mainnet]: '0xf469fbd2abcd6b9de8e169d128226c0fc90a012e',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.SolvBTC]: {\n [Chain.Mainnet]: '0x7a56e1c57c7475ccf742a1832b028f0456652f97',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.PUFFER]: {\n [Chain.Mainnet]: '0x4d1c297d39c5c1277964d0e3f8aa901493664530',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.vePUFFER]: {\n [Chain.Mainnet]: '0xA55eD5808aeCDF23AE3782C1443185f5D2363ce7',\n },\n [Token.CARROT]: {\n [Chain.Mainnet]: '0x282a69142bac47855c3fbe1693fcc4ba3b4d5ed6',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.lvlUSD]: {\n [Chain.Mainnet]: '0x7C1156E515aA1A2E851674120074968C905aAF37',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.slvlUSD]: {\n [Chain.Mainnet]: '0x4737d9b4592b40d51e110b94c9c043c6654067ae',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.mtwCARROT]: {\n [Chain.Mainnet]: '0x8A5A5DE9db5770123Ff2145F59e9F20047f0A8EC',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.sCARROT]: {\n [Chain.Mainnet]: '0x99c599227c65132822f0290d9e5b4b0430d6c0d6',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.EIGEN]: {\n [Chain.Mainnet]: '0xec53bF9167f50cDEB3Ae105f56099aaaB9061F83',\n },\n\n // UniFi Tokens\n [UnifiToken.unifiETH]: {\n [Chain.Mainnet]: '0x196ead472583bc1e9af7a05f860d9857e1bd3dcc',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [UnifiToken.unifiUSD]: {\n [Chain.Mainnet]: '0x82c40e07277eBb92935f79cE92268F80dDc7caB4',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [UnifiToken.unifiBTC]: {\n [Chain.Mainnet]: '0x170d847a8320f3b6a77ee15b0cae430e3ec933a0',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [UnifiToken.pufETHs]: {\n [Chain.Mainnet]: '0x62a4ce0722ee65635c0f8339dd814d549b6f6735',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n};\n\nexport const TOKENS_PERMIT_VERSION: { [key in AnyToken]: string } = {\n // USDC does not support permit signatures (ERC20Permit).\n // https://ethereum.stackexchange.com/questions/166254/usdt-contract-dont-have-erc20permit\n [Token.USDT]: '',\n // USDC does not support permit signatures (ERC20Permit).\n [Token.USDC]: '',\n // DAI does not support permit signatures (ERC20Permit).\n [Token.DAI]: '',\n // WETH does not support permit signatures (ERC20Permit).\n [Token.WETH]: '',\n [Token.stETH]: '2',\n // Puffer Quest v1 uses version 1 for wstETH.\n [Token.wstETH]: '1',\n // https://github.com/etherfi-protocol/smart-contracts/blob/7c66e571df4fe7ec502a3c325b623bc52349ef9d/src/EETH.sol#L55\n [Token.eETH]: '1',\n // https://etherscan.io/token/0xbe9895146f7af43049ca1c1ae358b0541ea49704#readProxyContract#F26\n [Token.cbETH]: '2',\n [Token.ALT]: '1',\n [Token.pufETHwstE]: 'v7.0.0',\n [Token.pufETH]: '1',\n [Token.xPufETH]: '1',\n [Token.ctTACpufETH]: '',\n [Token.WBTC]: '',\n [Token.LBTC]: '',\n [Token.tBTC]: '',\n [Token.cbBTC]: '',\n [Token.pumpBTC]: '',\n [Token.SolvBTC]: '',\n [Token.PUFFER]: '1',\n [Token.vePUFFER]: '1',\n [Token.CARROT]: '1',\n [Token.lvlUSD]: '1',\n // `slvlUSD` supports permit but the transactions are reverting now\n // for some reason.\n [Token.slvlUSD]: '',\n [Token.mtwCARROT]: '',\n [Token.sCARROT]: '',\n [Token.LINK]: '',\n [Token.TEST]: '',\n [Token.VT]: '1',\n [Token.EIGEN]: '1',\n\n // UniFi Tokens\n // https://etherscan.io/address/0x196ead472583bc1e9af7a05f860d9857e1bd3dcc#code#F7#L172\n [UnifiToken.unifiETH]: '1',\n // https://etherscan.io/address/0x82c40e07277eBb92935f79cE92268F80dDc7caB4#code#F7#L172\n [UnifiToken.unifiUSD]: '1',\n // https://etherscan.io/address/0x170d847a8320f3b6a77ee15b0cae430e3ec933a0#code#F7#L172\n [UnifiToken.unifiBTC]: '1',\n // https://etherscan.io/address/0x62a4ce0722ee65635c0f8339dd814d549b6f6735#code#F7#L172\n [UnifiToken.pufETHs]: '1',\n};\n\nexport const TOKENS_SALT: Partial<{\n [key in AnyToken]: { [chain in Chain]: Address };\n}> = {\n [Token.pufETHwstE]: {\n // Taken from\n // https://etherscan.io/token/0xeeda34a377dd0ca676b9511ee1324974fa8d980d#readContract#F39.\n [Chain.Mainnet]:\n '0x0e986ed5610121905f03fd3850cebcc00f66166fc3ab760acb4e087d735d9457',\n [Chain.Holesky]:\n '0x0000000000000000000000000000000000000000000000000000000000000000',\n },\n};\n"],"names":["Token","UnifiToken","TOKENS_ADDRESSES","Chain","TOKENS_PERMIT_VERSION","TOKENS_SALT"],"mappings":"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"}
1
+ {"version":3,"file":"tokens.cjs","sources":["../../lib/contracts/tokens.ts"],"sourcesContent":["import { Address } from 'viem';\nimport { Chain } from '../chains/constants';\n\nexport enum Token {\n USDT = 'USDT',\n USDC = 'USDC',\n DAI = 'DAI',\n WETH = 'WETH',\n stETH = 'stETH',\n wstETH = 'wstETH',\n eETH = 'eETH',\n cbETH = 'cbETH',\n ALT = 'ALT',\n pufETHwstE = 'pufETHwstE',\n pufETH = 'pufETH',\n xPufETH = 'xPufETH',\n ctTACpufETH = 'ctTACpufETH',\n WBTC = 'WBTC',\n LBTC = 'LBTC',\n tBTC = 'tBTC',\n cbBTC = 'cbBTC',\n pumpBTC = 'pumpBTC',\n SolvBTC = 'SolvBTC',\n PUFFER = 'PUFFER',\n vePUFFER = 'vePUFFER',\n CARROT = 'CARROT',\n lvlUSD = 'lvlUSD',\n slvlUSD = 'slvlUSD',\n mtwCARROT = 'mtwCARROT',\n sCARROT = 'sCARROT',\n LINK = 'LINK',\n TEST = 'TEST',\n VT = 'VT',\n EIGEN = 'EIGEN',\n}\n\nexport enum UnifiToken {\n unifiETH = 'unifiETH',\n unifiUSD = 'unifiUSD',\n unifiBTC = 'unifiBTC',\n // Symbiotic pufETH.\n pufETHs = 'pufETHs',\n}\n\nexport type AnyToken = Token | UnifiToken;\n\nexport const TOKENS_ADDRESSES: {\n [key in AnyToken]: { [chain in Chain]: Address };\n} = {\n [Token.VT]: {\n [Chain.Mainnet]: '0x7D26AD6F6BA9D6bA1de0218Ae5e20CD3a273a55A',\n [Chain.Holesky]: '0xB028194785178a94Fe608994A4d5AD84c285A640',\n },\n [Token.TEST]: {\n [Chain.Sepolia]: '0xd26e3540a0a368845b234736a0700e0a5a821bba',\n [Chain.OptimismSepolia]: '0x7Fa13D6CB44164ea09dF8BCc673A8849092D435b',\n },\n [Token.LINK]: {\n [Chain.BaseSepolia]: '0xe4ab69c077896252fafbd49efd26b5d171a32410',\n [Chain.OptimismSepolia]: '0xE4aB69C077896252FAFBD49EFD26B5D171A32410',\n },\n [Token.USDT]: {\n [Chain.Mainnet]: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n [Chain.Holesky]: '0xd5bef2c64f418fd460319521d37862327122e3bc',\n [Chain.Sepolia]: '0xaa8e23fb1079ea71e0a56f48a2aa51851d8433d0',\n },\n [Token.USDC]: {\n [Chain.Mainnet]: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n [Chain.Holesky]: '0x64Cc0de0429bcb87e875905a0c313ec88f6d1d3E',\n },\n [Token.DAI]: {\n [Chain.Mainnet]: '0x6b175474e89094c44da98b954eedeac495271d0f',\n [Chain.Holesky]: '0x4478905505ddfb7eA1c8A9f46eAEC3695cE542ac',\n },\n [Token.WETH]: {\n [Chain.Mainnet]: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n [Chain.Holesky]: '0x1d181cBd1825e9eBC6AD966878D555A7215FF4F0',\n [Chain.Hoodi]: '0x251609d3e04165CA5CfaBa5DEE70A4e47863D060',\n },\n [Token.stETH]: {\n [Chain.Mainnet]: '0xae7ab96520de3a18e5e111b5eaab095312d7fe84',\n [Chain.Holesky]: '0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034',\n },\n [Token.wstETH]: {\n [Chain.Mainnet]: '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0',\n [Chain.Holesky]: '0x8d09a4502Cc8Cf1547aD300E066060D043f6982D',\n },\n [Token.eETH]: {\n [Chain.Mainnet]: '0x35fa164735182de50811e8e2e824cfb9b6118ac2',\n [Chain.Holesky]: '0x7ba2ee123b5977e3da040e1eacb3a61c82c17876',\n },\n [Token.cbETH]: {\n [Chain.Mainnet]: '0xbe9895146f7af43049ca1c1ae358b0541ea49704',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.ALT]: {\n [Chain.Mainnet]: '0x8457ca5040ad67fdebbcc8edce889a335bc0fbfb',\n [Chain.Holesky]: '0xaf5588a571b42c7e50bd440d80f9bf94a4db94ee',\n },\n [Token.pufETHwstE]: {\n [Chain.Mainnet]: '0xeeda34a377dd0ca676b9511ee1324974fa8d980d',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.pufETH]: {\n [Chain.Mainnet]: '0xd9a442856c234a39a81a089c06451ebaa4306a72',\n [Chain.Holesky]: '0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9',\n [Chain.Soneium]: '0x6c460b2c6D6719562D5dA43E5152B375e79B9A8B',\n [Chain.Arbitrum]: '0x37D6382B6889cCeF8d6871A8b60E667115eDDBcF',\n [Chain.Berachain]: '0x417b0Ff8358Eb72867Da92225CaB99BCD5e6F205',\n },\n [Token.xPufETH]: {\n [Chain.Mainnet]: '0xD7D2802f6b19843ac4DfE25022771FD83b5A7464',\n [Chain.Base]: '0x23dA5F2d509cb43A59d43C108a43eDf34510eff1',\n [Chain.Bsc]: '0x64274835D88F5c0215da8AADd9A5f2D2A2569381',\n [Chain.ApeChain]: '0x6234E5ef39B12EFdFcbd99dd7F452F27F3fEAE3b',\n [Chain.Zircuit]: '0x9346A5043C590133FE900aec643D9622EDddBA57',\n },\n [Token.ctTACpufETH]: {\n [Chain.Mainnet]: '0x78f314241df1ac151bfd0413eeb51979515f6abd',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.WBTC]: {\n [Chain.Mainnet]: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.LBTC]: {\n [Chain.Mainnet]: '0x8236a87084f8b84306f72007f36f2618a5634494',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.tBTC]: {\n [Chain.Mainnet]: '0x18084fbA666a33d37592fA2633fD49a74DD93a88',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.cbBTC]: {\n [Chain.Mainnet]: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.pumpBTC]: {\n [Chain.Mainnet]: '0xf469fbd2abcd6b9de8e169d128226c0fc90a012e',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.SolvBTC]: {\n [Chain.Mainnet]: '0x7a56e1c57c7475ccf742a1832b028f0456652f97',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.PUFFER]: {\n [Chain.Mainnet]: '0x4d1c297d39c5c1277964d0e3f8aa901493664530',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.vePUFFER]: {\n [Chain.Mainnet]: '0xA55eD5808aeCDF23AE3782C1443185f5D2363ce7',\n },\n [Token.CARROT]: {\n [Chain.Mainnet]: '0x282a69142bac47855c3fbe1693fcc4ba3b4d5ed6',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.lvlUSD]: {\n [Chain.Mainnet]: '0x7C1156E515aA1A2E851674120074968C905aAF37',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.slvlUSD]: {\n [Chain.Mainnet]: '0x4737d9b4592b40d51e110b94c9c043c6654067ae',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.mtwCARROT]: {\n [Chain.Mainnet]: '0x8A5A5DE9db5770123Ff2145F59e9F20047f0A8EC',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.sCARROT]: {\n [Chain.Mainnet]: '0x99c599227c65132822f0290d9e5b4b0430d6c0d6',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.EIGEN]: {\n [Chain.Mainnet]: '0xec53bF9167f50cDEB3Ae105f56099aaaB9061F83',\n },\n\n // UniFi Tokens\n [UnifiToken.unifiETH]: {\n [Chain.Mainnet]: '0x196ead472583bc1e9af7a05f860d9857e1bd3dcc',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [UnifiToken.unifiUSD]: {\n [Chain.Mainnet]: '0x82c40e07277eBb92935f79cE92268F80dDc7caB4',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [UnifiToken.unifiBTC]: {\n [Chain.Mainnet]: '0x170d847a8320f3b6a77ee15b0cae430e3ec933a0',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [UnifiToken.pufETHs]: {\n [Chain.Mainnet]: '0x62a4ce0722ee65635c0f8339dd814d549b6f6735',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n};\n\nexport const TOKENS_PERMIT_VERSION: { [key in AnyToken]: string } = {\n // USDC does not support permit signatures (ERC20Permit).\n // https://ethereum.stackexchange.com/questions/166254/usdt-contract-dont-have-erc20permit\n [Token.USDT]: '',\n // USDC does not support permit signatures (ERC20Permit).\n [Token.USDC]: '',\n // DAI does not support permit signatures (ERC20Permit).\n [Token.DAI]: '',\n // WETH does not support permit signatures (ERC20Permit).\n [Token.WETH]: '',\n [Token.stETH]: '2',\n // Puffer Quest v1 uses version 1 for wstETH.\n [Token.wstETH]: '1',\n // https://github.com/etherfi-protocol/smart-contracts/blob/7c66e571df4fe7ec502a3c325b623bc52349ef9d/src/EETH.sol#L55\n [Token.eETH]: '1',\n // https://etherscan.io/token/0xbe9895146f7af43049ca1c1ae358b0541ea49704#readProxyContract#F26\n [Token.cbETH]: '2',\n [Token.ALT]: '1',\n [Token.pufETHwstE]: 'v7.0.0',\n [Token.pufETH]: '1',\n [Token.xPufETH]: '1',\n [Token.ctTACpufETH]: '',\n [Token.WBTC]: '',\n [Token.LBTC]: '',\n [Token.tBTC]: '',\n [Token.cbBTC]: '',\n [Token.pumpBTC]: '',\n [Token.SolvBTC]: '',\n [Token.PUFFER]: '1',\n [Token.vePUFFER]: '1',\n [Token.CARROT]: '1',\n [Token.lvlUSD]: '1',\n // `slvlUSD` supports permit but the transactions are reverting now\n // for some reason.\n [Token.slvlUSD]: '',\n [Token.mtwCARROT]: '',\n [Token.sCARROT]: '',\n [Token.LINK]: '',\n [Token.TEST]: '',\n [Token.VT]: '1',\n [Token.EIGEN]: '1',\n\n // UniFi Tokens\n // https://etherscan.io/address/0x196ead472583bc1e9af7a05f860d9857e1bd3dcc#code#F7#L172\n [UnifiToken.unifiETH]: '1',\n // https://etherscan.io/address/0x82c40e07277eBb92935f79cE92268F80dDc7caB4#code#F7#L172\n [UnifiToken.unifiUSD]: '1',\n // https://etherscan.io/address/0x170d847a8320f3b6a77ee15b0cae430e3ec933a0#code#F7#L172\n [UnifiToken.unifiBTC]: '1',\n // https://etherscan.io/address/0x62a4ce0722ee65635c0f8339dd814d549b6f6735#code#F7#L172\n [UnifiToken.pufETHs]: '1',\n};\n\nexport const TOKENS_SALT: Partial<{\n [key in AnyToken]: { [chain in Chain]: Address };\n}> = {\n [Token.pufETHwstE]: {\n // Taken from\n // https://etherscan.io/token/0xeeda34a377dd0ca676b9511ee1324974fa8d980d#readContract#F39.\n [Chain.Mainnet]:\n '0x0e986ed5610121905f03fd3850cebcc00f66166fc3ab760acb4e087d735d9457',\n [Chain.Holesky]:\n '0x0000000000000000000000000000000000000000000000000000000000000000',\n },\n};\n"],"names":["Token","UnifiToken","TOKENS_ADDRESSES","Chain","TOKENS_PERMIT_VERSION","TOKENS_SALT"],"mappings":"6HAGY,IAAAA,GAAAA,IACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,WAAa,aACbA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,YAAc,cACdA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,QAAU,UACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,GAAK,KACLA,EAAA,MAAQ,QA9BEA,IAAAA,GAAA,CAAA,CAAA,EAiCAC,GAAAA,IACVA,EAAA,SAAW,WACXA,EAAA,SAAW,WACXA,EAAA,SAAW,WAEXA,EAAA,QAAU,UALAA,IAAAA,GAAA,CAAA,CAAA,EAUL,MAAMC,EAET,CACD,GAAW,CACV,CAACC,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,KAAa,CACZ,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,eAAe,EAAG,4CAC3B,EACC,KAAa,CACZ,CAACA,EAAAA,MAAM,WAAW,EAAG,6CACrB,CAACA,EAAAA,MAAM,eAAe,EAAG,4CAC3B,EACC,KAAa,CACZ,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,KAAa,CACZ,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,IAAY,CACX,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,KAAa,CACZ,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,KAAK,EAAG,4CACjB,EACC,MAAc,CACb,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,OAAe,CACd,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,KAAa,CACZ,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,MAAc,CACb,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,IAAY,CACX,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,WAAmB,CAClB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,OAAe,CACd,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,QAAQ,EAAG,6CAClB,CAACA,EAAAA,MAAM,SAAS,EAAG,4CACrB,EACC,QAAgB,CACf,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,IAAI,EAAG,6CACd,CAACA,EAAAA,MAAM,GAAG,EAAG,6CACb,CAACA,EAAAA,MAAM,QAAQ,EAAG,6CAClB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,YAAoB,CACnB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,KAAa,CACZ,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,KAAa,CACZ,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,KAAa,CACZ,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,MAAc,CACb,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,QAAgB,CACf,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,QAAgB,CACf,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,OAAe,CACd,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,SAAiB,CAChB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,OAAe,CACd,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,OAAe,CACd,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,QAAgB,CACf,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,UAAkB,CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,QAAgB,CACf,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,MAAc,CACb,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EAGC,SAAsB,CACrB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,SAAsB,CACrB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,SAAsB,CACrB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,QAAqB,CACpB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CAAA,CAErB,EAEaC,EAAuD,CAGjE,KAAa,GAEb,KAAa,GAEb,IAAY,GAEZ,KAAa,GACb,MAAc,IAEd,OAAe,IAEf,KAAa,IAEb,MAAc,IACd,IAAY,IACZ,WAAmB,SACnB,OAAe,IACf,QAAgB,IAChB,YAAoB,GACpB,KAAa,GACb,KAAa,GACb,KAAa,GACb,MAAc,GACd,QAAgB,GAChB,QAAgB,GAChB,OAAe,IACf,SAAiB,IACjB,OAAe,IACf,OAAe,IAGf,QAAgB,GAChB,UAAkB,GAClB,QAAgB,GAChB,KAAa,GACb,KAAa,GACb,GAAW,IACX,MAAc,IAId,SAAsB,IAEtB,SAAsB,IAEtB,SAAsB,IAEtB,QAAqB,GACxB,EAEaC,EAER,CACF,WAAmB,CAGlB,CAACF,EAAAA,MAAM,OAAO,EACZ,qEACF,CAACA,EAAAA,MAAM,OAAO,EACZ,oEAAA,CAEN"}
@@ -1,6 +1,6 @@
1
1
  import { C as e } from "../constants-BweLzNUt.js";
2
2
  var c = /* @__PURE__ */ ((a) => (a.USDT = "USDT", a.USDC = "USDC", a.DAI = "DAI", a.WETH = "WETH", a.stETH = "stETH", a.wstETH = "wstETH", a.eETH = "eETH", a.cbETH = "cbETH", a.ALT = "ALT", a.pufETHwstE = "pufETHwstE", a.pufETH = "pufETH", a.xPufETH = "xPufETH", a.ctTACpufETH = "ctTACpufETH", a.WBTC = "WBTC", a.LBTC = "LBTC", a.tBTC = "tBTC", a.cbBTC = "cbBTC", a.pumpBTC = "pumpBTC", a.SolvBTC = "SolvBTC", a.PUFFER = "PUFFER", a.vePUFFER = "vePUFFER", a.CARROT = "CARROT", a.lvlUSD = "lvlUSD", a.slvlUSD = "slvlUSD", a.mtwCARROT = "mtwCARROT", a.sCARROT = "sCARROT", a.LINK = "LINK", a.TEST = "TEST", a.VT = "VT", a.EIGEN = "EIGEN", a))(c || {}), f = /* @__PURE__ */ ((a) => (a.unifiETH = "unifiETH", a.unifiUSD = "unifiUSD", a.unifiBTC = "unifiBTC", a.pufETHs = "pufETHs", a))(f || {});
3
- const b = {
3
+ const d = {
4
4
  VT: {
5
5
  [e.Mainnet]: "0x7D26AD6F6BA9D6bA1de0218Ae5e20CD3a273a55A",
6
6
  [e.Holesky]: "0xB028194785178a94Fe608994A4d5AD84c285A640"
@@ -28,7 +28,8 @@ const b = {
28
28
  },
29
29
  WETH: {
30
30
  [e.Mainnet]: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
31
- [e.Holesky]: "0x1d181cBd1825e9eBC6AD966878D555A7215FF4F0"
31
+ [e.Holesky]: "0x1d181cBd1825e9eBC6AD966878D555A7215FF4F0",
32
+ [e.Hoodi]: "0x251609d3e04165CA5CfaBa5DEE70A4e47863D060"
32
33
  },
33
34
  stETH: {
34
35
  [e.Mainnet]: "0xae7ab96520de3a18e5e111b5eaab095312d7fe84",
@@ -143,7 +144,7 @@ const b = {
143
144
  [e.Mainnet]: "0x62a4ce0722ee65635c0f8339dd814d549b6f6735",
144
145
  [e.Holesky]: "0x0000000000000000000000000000000000000000"
145
146
  }
146
- }, d = {
147
+ }, b = {
147
148
  // USDC does not support permit signatures (ERC20Permit).
148
149
  // https://ethereum.stackexchange.com/questions/166254/usdt-contract-dont-have-erc20permit
149
150
  USDT: "",
@@ -202,8 +203,8 @@ const b = {
202
203
  }
203
204
  };
204
205
  export {
205
- b as TOKENS_ADDRESSES,
206
- d as TOKENS_PERMIT_VERSION,
206
+ d as TOKENS_ADDRESSES,
207
+ b as TOKENS_PERMIT_VERSION,
207
208
  T as TOKENS_SALT,
208
209
  c as Token,
209
210
  f as UnifiToken
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sources":["../../lib/contracts/tokens.ts"],"sourcesContent":["import { Address } from 'viem';\nimport { Chain } from '../chains/constants';\n\nexport enum Token {\n USDT = 'USDT',\n USDC = 'USDC',\n DAI = 'DAI',\n WETH = 'WETH',\n stETH = 'stETH',\n wstETH = 'wstETH',\n eETH = 'eETH',\n cbETH = 'cbETH',\n ALT = 'ALT',\n pufETHwstE = 'pufETHwstE',\n pufETH = 'pufETH',\n xPufETH = 'xPufETH',\n ctTACpufETH = 'ctTACpufETH',\n WBTC = 'WBTC',\n LBTC = 'LBTC',\n tBTC = 'tBTC',\n cbBTC = 'cbBTC',\n pumpBTC = 'pumpBTC',\n SolvBTC = 'SolvBTC',\n PUFFER = 'PUFFER',\n vePUFFER = 'vePUFFER',\n CARROT = 'CARROT',\n lvlUSD = 'lvlUSD',\n slvlUSD = 'slvlUSD',\n mtwCARROT = 'mtwCARROT',\n sCARROT = 'sCARROT',\n LINK = 'LINK',\n TEST = 'TEST',\n VT = 'VT',\n EIGEN = 'EIGEN',\n}\n\nexport enum UnifiToken {\n unifiETH = 'unifiETH',\n unifiUSD = 'unifiUSD',\n unifiBTC = 'unifiBTC',\n // Symbiotic pufETH.\n pufETHs = 'pufETHs',\n}\n\nexport type AnyToken = Token | UnifiToken;\n\nexport const TOKENS_ADDRESSES: {\n [key in AnyToken]: { [chain in Chain]: Address };\n} = {\n [Token.VT]: {\n [Chain.Mainnet]: '0x7D26AD6F6BA9D6bA1de0218Ae5e20CD3a273a55A',\n [Chain.Holesky]: '0xB028194785178a94Fe608994A4d5AD84c285A640',\n },\n [Token.TEST]: {\n [Chain.Sepolia]: '0xd26e3540a0a368845b234736a0700e0a5a821bba',\n [Chain.OptimismSepolia]: '0x7Fa13D6CB44164ea09dF8BCc673A8849092D435b',\n },\n [Token.LINK]: {\n [Chain.BaseSepolia]: '0xe4ab69c077896252fafbd49efd26b5d171a32410',\n [Chain.OptimismSepolia]: '0xE4aB69C077896252FAFBD49EFD26B5D171A32410',\n },\n [Token.USDT]: {\n [Chain.Mainnet]: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n [Chain.Holesky]: '0xd5bef2c64f418fd460319521d37862327122e3bc',\n [Chain.Sepolia]: '0xaa8e23fb1079ea71e0a56f48a2aa51851d8433d0',\n },\n [Token.USDC]: {\n [Chain.Mainnet]: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n [Chain.Holesky]: '0x64Cc0de0429bcb87e875905a0c313ec88f6d1d3E',\n },\n [Token.DAI]: {\n [Chain.Mainnet]: '0x6b175474e89094c44da98b954eedeac495271d0f',\n [Chain.Holesky]: '0x4478905505ddfb7eA1c8A9f46eAEC3695cE542ac',\n },\n [Token.WETH]: {\n [Chain.Mainnet]: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n [Chain.Holesky]: '0x1d181cBd1825e9eBC6AD966878D555A7215FF4F0',\n },\n [Token.stETH]: {\n [Chain.Mainnet]: '0xae7ab96520de3a18e5e111b5eaab095312d7fe84',\n [Chain.Holesky]: '0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034',\n },\n [Token.wstETH]: {\n [Chain.Mainnet]: '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0',\n [Chain.Holesky]: '0x8d09a4502Cc8Cf1547aD300E066060D043f6982D',\n },\n [Token.eETH]: {\n [Chain.Mainnet]: '0x35fa164735182de50811e8e2e824cfb9b6118ac2',\n [Chain.Holesky]: '0x7ba2ee123b5977e3da040e1eacb3a61c82c17876',\n },\n [Token.cbETH]: {\n [Chain.Mainnet]: '0xbe9895146f7af43049ca1c1ae358b0541ea49704',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.ALT]: {\n [Chain.Mainnet]: '0x8457ca5040ad67fdebbcc8edce889a335bc0fbfb',\n [Chain.Holesky]: '0xaf5588a571b42c7e50bd440d80f9bf94a4db94ee',\n },\n [Token.pufETHwstE]: {\n [Chain.Mainnet]: '0xeeda34a377dd0ca676b9511ee1324974fa8d980d',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.pufETH]: {\n [Chain.Mainnet]: '0xd9a442856c234a39a81a089c06451ebaa4306a72',\n [Chain.Holesky]: '0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9',\n [Chain.Soneium]: '0x6c460b2c6D6719562D5dA43E5152B375e79B9A8B',\n [Chain.Arbitrum]: '0x37D6382B6889cCeF8d6871A8b60E667115eDDBcF',\n [Chain.Berachain]: '0x417b0Ff8358Eb72867Da92225CaB99BCD5e6F205',\n },\n [Token.xPufETH]: {\n [Chain.Mainnet]: '0xD7D2802f6b19843ac4DfE25022771FD83b5A7464',\n [Chain.Base]: '0x23dA5F2d509cb43A59d43C108a43eDf34510eff1',\n [Chain.Bsc]: '0x64274835D88F5c0215da8AADd9A5f2D2A2569381',\n [Chain.ApeChain]: '0x6234E5ef39B12EFdFcbd99dd7F452F27F3fEAE3b',\n [Chain.Zircuit]: '0x9346A5043C590133FE900aec643D9622EDddBA57',\n },\n [Token.ctTACpufETH]: {\n [Chain.Mainnet]: '0x78f314241df1ac151bfd0413eeb51979515f6abd',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.WBTC]: {\n [Chain.Mainnet]: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.LBTC]: {\n [Chain.Mainnet]: '0x8236a87084f8b84306f72007f36f2618a5634494',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.tBTC]: {\n [Chain.Mainnet]: '0x18084fbA666a33d37592fA2633fD49a74DD93a88',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.cbBTC]: {\n [Chain.Mainnet]: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.pumpBTC]: {\n [Chain.Mainnet]: '0xf469fbd2abcd6b9de8e169d128226c0fc90a012e',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.SolvBTC]: {\n [Chain.Mainnet]: '0x7a56e1c57c7475ccf742a1832b028f0456652f97',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.PUFFER]: {\n [Chain.Mainnet]: '0x4d1c297d39c5c1277964d0e3f8aa901493664530',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.vePUFFER]: {\n [Chain.Mainnet]: '0xA55eD5808aeCDF23AE3782C1443185f5D2363ce7',\n },\n [Token.CARROT]: {\n [Chain.Mainnet]: '0x282a69142bac47855c3fbe1693fcc4ba3b4d5ed6',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.lvlUSD]: {\n [Chain.Mainnet]: '0x7C1156E515aA1A2E851674120074968C905aAF37',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.slvlUSD]: {\n [Chain.Mainnet]: '0x4737d9b4592b40d51e110b94c9c043c6654067ae',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.mtwCARROT]: {\n [Chain.Mainnet]: '0x8A5A5DE9db5770123Ff2145F59e9F20047f0A8EC',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.sCARROT]: {\n [Chain.Mainnet]: '0x99c599227c65132822f0290d9e5b4b0430d6c0d6',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.EIGEN]: {\n [Chain.Mainnet]: '0xec53bF9167f50cDEB3Ae105f56099aaaB9061F83',\n },\n\n // UniFi Tokens\n [UnifiToken.unifiETH]: {\n [Chain.Mainnet]: '0x196ead472583bc1e9af7a05f860d9857e1bd3dcc',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [UnifiToken.unifiUSD]: {\n [Chain.Mainnet]: '0x82c40e07277eBb92935f79cE92268F80dDc7caB4',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [UnifiToken.unifiBTC]: {\n [Chain.Mainnet]: '0x170d847a8320f3b6a77ee15b0cae430e3ec933a0',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [UnifiToken.pufETHs]: {\n [Chain.Mainnet]: '0x62a4ce0722ee65635c0f8339dd814d549b6f6735',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n};\n\nexport const TOKENS_PERMIT_VERSION: { [key in AnyToken]: string } = {\n // USDC does not support permit signatures (ERC20Permit).\n // https://ethereum.stackexchange.com/questions/166254/usdt-contract-dont-have-erc20permit\n [Token.USDT]: '',\n // USDC does not support permit signatures (ERC20Permit).\n [Token.USDC]: '',\n // DAI does not support permit signatures (ERC20Permit).\n [Token.DAI]: '',\n // WETH does not support permit signatures (ERC20Permit).\n [Token.WETH]: '',\n [Token.stETH]: '2',\n // Puffer Quest v1 uses version 1 for wstETH.\n [Token.wstETH]: '1',\n // https://github.com/etherfi-protocol/smart-contracts/blob/7c66e571df4fe7ec502a3c325b623bc52349ef9d/src/EETH.sol#L55\n [Token.eETH]: '1',\n // https://etherscan.io/token/0xbe9895146f7af43049ca1c1ae358b0541ea49704#readProxyContract#F26\n [Token.cbETH]: '2',\n [Token.ALT]: '1',\n [Token.pufETHwstE]: 'v7.0.0',\n [Token.pufETH]: '1',\n [Token.xPufETH]: '1',\n [Token.ctTACpufETH]: '',\n [Token.WBTC]: '',\n [Token.LBTC]: '',\n [Token.tBTC]: '',\n [Token.cbBTC]: '',\n [Token.pumpBTC]: '',\n [Token.SolvBTC]: '',\n [Token.PUFFER]: '1',\n [Token.vePUFFER]: '1',\n [Token.CARROT]: '1',\n [Token.lvlUSD]: '1',\n // `slvlUSD` supports permit but the transactions are reverting now\n // for some reason.\n [Token.slvlUSD]: '',\n [Token.mtwCARROT]: '',\n [Token.sCARROT]: '',\n [Token.LINK]: '',\n [Token.TEST]: '',\n [Token.VT]: '1',\n [Token.EIGEN]: '1',\n\n // UniFi Tokens\n // https://etherscan.io/address/0x196ead472583bc1e9af7a05f860d9857e1bd3dcc#code#F7#L172\n [UnifiToken.unifiETH]: '1',\n // https://etherscan.io/address/0x82c40e07277eBb92935f79cE92268F80dDc7caB4#code#F7#L172\n [UnifiToken.unifiUSD]: '1',\n // https://etherscan.io/address/0x170d847a8320f3b6a77ee15b0cae430e3ec933a0#code#F7#L172\n [UnifiToken.unifiBTC]: '1',\n // https://etherscan.io/address/0x62a4ce0722ee65635c0f8339dd814d549b6f6735#code#F7#L172\n [UnifiToken.pufETHs]: '1',\n};\n\nexport const TOKENS_SALT: Partial<{\n [key in AnyToken]: { [chain in Chain]: Address };\n}> = {\n [Token.pufETHwstE]: {\n // Taken from\n // https://etherscan.io/token/0xeeda34a377dd0ca676b9511ee1324974fa8d980d#readContract#F39.\n [Chain.Mainnet]:\n '0x0e986ed5610121905f03fd3850cebcc00f66166fc3ab760acb4e087d735d9457',\n [Chain.Holesky]:\n '0x0000000000000000000000000000000000000000000000000000000000000000',\n },\n};\n"],"names":["Token","UnifiToken","TOKENS_ADDRESSES","Chain","TOKENS_PERMIT_VERSION","TOKENS_SALT"],"mappings":"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"}
1
+ {"version":3,"file":"tokens.js","sources":["../../lib/contracts/tokens.ts"],"sourcesContent":["import { Address } from 'viem';\nimport { Chain } from '../chains/constants';\n\nexport enum Token {\n USDT = 'USDT',\n USDC = 'USDC',\n DAI = 'DAI',\n WETH = 'WETH',\n stETH = 'stETH',\n wstETH = 'wstETH',\n eETH = 'eETH',\n cbETH = 'cbETH',\n ALT = 'ALT',\n pufETHwstE = 'pufETHwstE',\n pufETH = 'pufETH',\n xPufETH = 'xPufETH',\n ctTACpufETH = 'ctTACpufETH',\n WBTC = 'WBTC',\n LBTC = 'LBTC',\n tBTC = 'tBTC',\n cbBTC = 'cbBTC',\n pumpBTC = 'pumpBTC',\n SolvBTC = 'SolvBTC',\n PUFFER = 'PUFFER',\n vePUFFER = 'vePUFFER',\n CARROT = 'CARROT',\n lvlUSD = 'lvlUSD',\n slvlUSD = 'slvlUSD',\n mtwCARROT = 'mtwCARROT',\n sCARROT = 'sCARROT',\n LINK = 'LINK',\n TEST = 'TEST',\n VT = 'VT',\n EIGEN = 'EIGEN',\n}\n\nexport enum UnifiToken {\n unifiETH = 'unifiETH',\n unifiUSD = 'unifiUSD',\n unifiBTC = 'unifiBTC',\n // Symbiotic pufETH.\n pufETHs = 'pufETHs',\n}\n\nexport type AnyToken = Token | UnifiToken;\n\nexport const TOKENS_ADDRESSES: {\n [key in AnyToken]: { [chain in Chain]: Address };\n} = {\n [Token.VT]: {\n [Chain.Mainnet]: '0x7D26AD6F6BA9D6bA1de0218Ae5e20CD3a273a55A',\n [Chain.Holesky]: '0xB028194785178a94Fe608994A4d5AD84c285A640',\n },\n [Token.TEST]: {\n [Chain.Sepolia]: '0xd26e3540a0a368845b234736a0700e0a5a821bba',\n [Chain.OptimismSepolia]: '0x7Fa13D6CB44164ea09dF8BCc673A8849092D435b',\n },\n [Token.LINK]: {\n [Chain.BaseSepolia]: '0xe4ab69c077896252fafbd49efd26b5d171a32410',\n [Chain.OptimismSepolia]: '0xE4aB69C077896252FAFBD49EFD26B5D171A32410',\n },\n [Token.USDT]: {\n [Chain.Mainnet]: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n [Chain.Holesky]: '0xd5bef2c64f418fd460319521d37862327122e3bc',\n [Chain.Sepolia]: '0xaa8e23fb1079ea71e0a56f48a2aa51851d8433d0',\n },\n [Token.USDC]: {\n [Chain.Mainnet]: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n [Chain.Holesky]: '0x64Cc0de0429bcb87e875905a0c313ec88f6d1d3E',\n },\n [Token.DAI]: {\n [Chain.Mainnet]: '0x6b175474e89094c44da98b954eedeac495271d0f',\n [Chain.Holesky]: '0x4478905505ddfb7eA1c8A9f46eAEC3695cE542ac',\n },\n [Token.WETH]: {\n [Chain.Mainnet]: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n [Chain.Holesky]: '0x1d181cBd1825e9eBC6AD966878D555A7215FF4F0',\n [Chain.Hoodi]: '0x251609d3e04165CA5CfaBa5DEE70A4e47863D060',\n },\n [Token.stETH]: {\n [Chain.Mainnet]: '0xae7ab96520de3a18e5e111b5eaab095312d7fe84',\n [Chain.Holesky]: '0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034',\n },\n [Token.wstETH]: {\n [Chain.Mainnet]: '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0',\n [Chain.Holesky]: '0x8d09a4502Cc8Cf1547aD300E066060D043f6982D',\n },\n [Token.eETH]: {\n [Chain.Mainnet]: '0x35fa164735182de50811e8e2e824cfb9b6118ac2',\n [Chain.Holesky]: '0x7ba2ee123b5977e3da040e1eacb3a61c82c17876',\n },\n [Token.cbETH]: {\n [Chain.Mainnet]: '0xbe9895146f7af43049ca1c1ae358b0541ea49704',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.ALT]: {\n [Chain.Mainnet]: '0x8457ca5040ad67fdebbcc8edce889a335bc0fbfb',\n [Chain.Holesky]: '0xaf5588a571b42c7e50bd440d80f9bf94a4db94ee',\n },\n [Token.pufETHwstE]: {\n [Chain.Mainnet]: '0xeeda34a377dd0ca676b9511ee1324974fa8d980d',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.pufETH]: {\n [Chain.Mainnet]: '0xd9a442856c234a39a81a089c06451ebaa4306a72',\n [Chain.Holesky]: '0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9',\n [Chain.Soneium]: '0x6c460b2c6D6719562D5dA43E5152B375e79B9A8B',\n [Chain.Arbitrum]: '0x37D6382B6889cCeF8d6871A8b60E667115eDDBcF',\n [Chain.Berachain]: '0x417b0Ff8358Eb72867Da92225CaB99BCD5e6F205',\n },\n [Token.xPufETH]: {\n [Chain.Mainnet]: '0xD7D2802f6b19843ac4DfE25022771FD83b5A7464',\n [Chain.Base]: '0x23dA5F2d509cb43A59d43C108a43eDf34510eff1',\n [Chain.Bsc]: '0x64274835D88F5c0215da8AADd9A5f2D2A2569381',\n [Chain.ApeChain]: '0x6234E5ef39B12EFdFcbd99dd7F452F27F3fEAE3b',\n [Chain.Zircuit]: '0x9346A5043C590133FE900aec643D9622EDddBA57',\n },\n [Token.ctTACpufETH]: {\n [Chain.Mainnet]: '0x78f314241df1ac151bfd0413eeb51979515f6abd',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.WBTC]: {\n [Chain.Mainnet]: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.LBTC]: {\n [Chain.Mainnet]: '0x8236a87084f8b84306f72007f36f2618a5634494',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.tBTC]: {\n [Chain.Mainnet]: '0x18084fbA666a33d37592fA2633fD49a74DD93a88',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.cbBTC]: {\n [Chain.Mainnet]: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.pumpBTC]: {\n [Chain.Mainnet]: '0xf469fbd2abcd6b9de8e169d128226c0fc90a012e',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.SolvBTC]: {\n [Chain.Mainnet]: '0x7a56e1c57c7475ccf742a1832b028f0456652f97',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.PUFFER]: {\n [Chain.Mainnet]: '0x4d1c297d39c5c1277964d0e3f8aa901493664530',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.vePUFFER]: {\n [Chain.Mainnet]: '0xA55eD5808aeCDF23AE3782C1443185f5D2363ce7',\n },\n [Token.CARROT]: {\n [Chain.Mainnet]: '0x282a69142bac47855c3fbe1693fcc4ba3b4d5ed6',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.lvlUSD]: {\n [Chain.Mainnet]: '0x7C1156E515aA1A2E851674120074968C905aAF37',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.slvlUSD]: {\n [Chain.Mainnet]: '0x4737d9b4592b40d51e110b94c9c043c6654067ae',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.mtwCARROT]: {\n [Chain.Mainnet]: '0x8A5A5DE9db5770123Ff2145F59e9F20047f0A8EC',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.sCARROT]: {\n [Chain.Mainnet]: '0x99c599227c65132822f0290d9e5b4b0430d6c0d6',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.EIGEN]: {\n [Chain.Mainnet]: '0xec53bF9167f50cDEB3Ae105f56099aaaB9061F83',\n },\n\n // UniFi Tokens\n [UnifiToken.unifiETH]: {\n [Chain.Mainnet]: '0x196ead472583bc1e9af7a05f860d9857e1bd3dcc',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [UnifiToken.unifiUSD]: {\n [Chain.Mainnet]: '0x82c40e07277eBb92935f79cE92268F80dDc7caB4',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [UnifiToken.unifiBTC]: {\n [Chain.Mainnet]: '0x170d847a8320f3b6a77ee15b0cae430e3ec933a0',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [UnifiToken.pufETHs]: {\n [Chain.Mainnet]: '0x62a4ce0722ee65635c0f8339dd814d549b6f6735',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n};\n\nexport const TOKENS_PERMIT_VERSION: { [key in AnyToken]: string } = {\n // USDC does not support permit signatures (ERC20Permit).\n // https://ethereum.stackexchange.com/questions/166254/usdt-contract-dont-have-erc20permit\n [Token.USDT]: '',\n // USDC does not support permit signatures (ERC20Permit).\n [Token.USDC]: '',\n // DAI does not support permit signatures (ERC20Permit).\n [Token.DAI]: '',\n // WETH does not support permit signatures (ERC20Permit).\n [Token.WETH]: '',\n [Token.stETH]: '2',\n // Puffer Quest v1 uses version 1 for wstETH.\n [Token.wstETH]: '1',\n // https://github.com/etherfi-protocol/smart-contracts/blob/7c66e571df4fe7ec502a3c325b623bc52349ef9d/src/EETH.sol#L55\n [Token.eETH]: '1',\n // https://etherscan.io/token/0xbe9895146f7af43049ca1c1ae358b0541ea49704#readProxyContract#F26\n [Token.cbETH]: '2',\n [Token.ALT]: '1',\n [Token.pufETHwstE]: 'v7.0.0',\n [Token.pufETH]: '1',\n [Token.xPufETH]: '1',\n [Token.ctTACpufETH]: '',\n [Token.WBTC]: '',\n [Token.LBTC]: '',\n [Token.tBTC]: '',\n [Token.cbBTC]: '',\n [Token.pumpBTC]: '',\n [Token.SolvBTC]: '',\n [Token.PUFFER]: '1',\n [Token.vePUFFER]: '1',\n [Token.CARROT]: '1',\n [Token.lvlUSD]: '1',\n // `slvlUSD` supports permit but the transactions are reverting now\n // for some reason.\n [Token.slvlUSD]: '',\n [Token.mtwCARROT]: '',\n [Token.sCARROT]: '',\n [Token.LINK]: '',\n [Token.TEST]: '',\n [Token.VT]: '1',\n [Token.EIGEN]: '1',\n\n // UniFi Tokens\n // https://etherscan.io/address/0x196ead472583bc1e9af7a05f860d9857e1bd3dcc#code#F7#L172\n [UnifiToken.unifiETH]: '1',\n // https://etherscan.io/address/0x82c40e07277eBb92935f79cE92268F80dDc7caB4#code#F7#L172\n [UnifiToken.unifiUSD]: '1',\n // https://etherscan.io/address/0x170d847a8320f3b6a77ee15b0cae430e3ec933a0#code#F7#L172\n [UnifiToken.unifiBTC]: '1',\n // https://etherscan.io/address/0x62a4ce0722ee65635c0f8339dd814d549b6f6735#code#F7#L172\n [UnifiToken.pufETHs]: '1',\n};\n\nexport const TOKENS_SALT: Partial<{\n [key in AnyToken]: { [chain in Chain]: Address };\n}> = {\n [Token.pufETHwstE]: {\n // Taken from\n // https://etherscan.io/token/0xeeda34a377dd0ca676b9511ee1324974fa8d980d#readContract#F39.\n [Chain.Mainnet]:\n '0x0e986ed5610121905f03fd3850cebcc00f66166fc3ab760acb4e087d735d9457',\n [Chain.Holesky]:\n '0x0000000000000000000000000000000000000000000000000000000000000000',\n },\n};\n"],"names":["Token","UnifiToken","TOKENS_ADDRESSES","Chain","TOKENS_PERMIT_VERSION","TOKENS_SALT"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="1.23.1",o=e;exports.version=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="1.24.1",o=e;exports.version=o;
2
2
  //# sourceMappingURL=version.cjs.map
@@ -1,4 +1,4 @@
1
- const o = "1.23.1", n = o;
1
+ const o = "1.24.1", n = o;
2
2
  export {
3
3
  n as version
4
4
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pufferfinance/puffer-sdk",
3
3
  "description": "SDK for interacting with the puffer smart contracts",
4
- "version": "1.24.0",
4
+ "version": "1.24.2",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/PufferFinance/puffer-sdk.git"