UNPKG

@lido-sdk/react

Version:

This project is being slowly deprecated and may not receive further updates. Check out [modern Lido SDK](https://github.com/lidofinance/lido-ethereum-sdk/pulls) to access latest functionality. It is actively maintained and is built for interacting with Li

52 lines (47 loc) 2.61 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var constants = require('@lido-sdk/constants'); var contracts = require('@lido-sdk/contracts'); var react = require('react'); var useSDK = require('../hooks/useSDK.js'); const contractHooksFactory = (factory, getTokenAddress) => { const getContract = contracts.createContractGetter(factory); return { useContractRPC: () => { const { chainId, providerRpc } = useSDK.useSDK(); const tokenAddress = getTokenAddress(chainId); return getContract(tokenAddress, providerRpc); }, useContractWeb3: () => { const { chainId, providerWeb3 } = useSDK.useSDK(); const tokenAddress = getTokenAddress(chainId); const signer = react.useMemo(() => { return providerWeb3 === null || providerWeb3 === void 0 ? void 0 : providerWeb3.getSigner(); }, [providerWeb3]); if (!signer) return null; return getContract(tokenAddress, signer); }, }; }; const wsteth = contractHooksFactory(contracts.WstethAbiFactory, (chainId) => constants.getTokenAddress(chainId, constants.TOKENS.WSTETH)); const useWSTETHContractRPC = wsteth.useContractRPC; const useWSTETHContractWeb3 = wsteth.useContractWeb3; const steth = contractHooksFactory(contracts.StethAbiFactory, (chainId) => constants.getTokenAddress(chainId, constants.TOKENS.STETH)); const useSTETHContractRPC = steth.useContractRPC; const useSTETHContractWeb3 = steth.useContractWeb3; const ldo = contractHooksFactory(contracts.LdoAbiFactory, (chainId) => constants.getTokenAddress(chainId, constants.TOKENS.LDO)); const useLDOContractRPC = ldo.useContractRPC; const useLDOContractWeb3 = ldo.useContractWeb3; const withdrawalQueue = contractHooksFactory(contracts.WithdrawalQueueAbiFactory, (chainId) => constants.getWithdrawalQueueAddress(chainId)); const useWithdrawalQueueContractRPC = withdrawalQueue.useContractRPC; const useWithdrawalQueueContractWeb3 = withdrawalQueue.useContractWeb3; exports.contractHooksFactory = contractHooksFactory; exports.useLDOContractRPC = useLDOContractRPC; exports.useLDOContractWeb3 = useLDOContractWeb3; exports.useSTETHContractRPC = useSTETHContractRPC; exports.useSTETHContractWeb3 = useSTETHContractWeb3; exports.useWSTETHContractRPC = useWSTETHContractRPC; exports.useWSTETHContractWeb3 = useWSTETHContractWeb3; exports.useWithdrawalQueueContractRPC = useWithdrawalQueueContractRPC; exports.useWithdrawalQueueContractWeb3 = useWithdrawalQueueContractWeb3;