Skip to content

Commit

Permalink
Committing working changes to stash before merging develop
Browse files Browse the repository at this point in the history
  • Loading branch information
ccali11 committed Sep 11, 2023
1 parent 281e6ac commit 57e7066
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 72 deletions.
101 changes: 30 additions & 71 deletions apps/web/src/composables/contracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,43 +50,12 @@ export default function useContracts() {
const { getCurrentPrice } = usePrice()
const { getEthersTrezorSigner } = useTrezor()
const { user } = useUsers()
const { getWalletConnectSignerV2, walletConnectSigner } = useWalletConnectV2()
const { getWalletConnectSignerV2, nonReactiveWalletConnectWeb3Provider } = useWalletConnectV2()

const stakeDepositedListener = async () => await refreshBreakdown()
const stakeRebalancedListener = async () => await refreshBreakdown()
const withdrawalInitiatedListener = async () => await refreshBreakdown()

// async function deposit({ amount, walletProvider }: { amount: string, walletProvider: ProviderString }) {
// try {
// const signerCreators = {
// 'Browser': getEthersBrowserSigner,
// 'Ledger': getEthersLedgerSigner,
// 'Trezor': getEthersTrezorSigner,
// 'WalletConnect': getWalletConnectSignerV2
// }
// const signerType = ethersProviderList.includes(walletProvider) ? 'Browser' : walletProvider
// const signerCreator = signerCreators[signerType as keyof typeof signerCreators]
// const signer = await signerCreator(walletProvider)
// const managerSigner = manager.connect(signer as ethers.Signer)
// const fees = await getDepositFees()
// const depositAmount = parseFloat(amount) * ((100 + fees) / 100)
// const value = ethers.utils.parseEther(depositAmount.toString())
// const estimatedGas = await managerSigner.estimateGas.depositStake({ value, type: 0 })
// console.log('estimatedGas :>> ', estimatedGas)
// // Convert estimatedGas from BigNumber to number
// const gasLimit = estimatedGas.toNumber()
// console.log('gasLimit :>> ', gasLimit)
// const bufferFactor = 1.5
// const bufferedGasLimit = Math.ceil(gasLimit * bufferFactor)
// const result = await managerSigner.depositStake({ value, type: 0, gasLimit: bufferedGasLimit })
// await result.wait(3)
// return true
// } catch (err) {
// console.error(`There was an error in deposit function: ${JSON.stringify(err)}`)
// return false
// }
// }

async function deposit({ amount, walletProvider }: { amount: string, walletProvider: ProviderString }) {
try {
const signerCreators = {
Expand All @@ -97,49 +66,34 @@ export default function useContracts() {
}
const signerType = ethersProviderList.includes(walletProvider) ? 'Browser' : walletProvider
const signerCreator = signerCreators[signerType as keyof typeof signerCreators]
const signer = await signerCreator(walletProvider)
let signer
if (walletProvider === 'WalletConnect') {
signer = await signerCreator(walletProvider)
} else {
signer = signerCreator(walletProvider)
}
console.log('signer :>> ', signer)
const managerSigner = manager.connect(signer as ethers.Signer)

console.log('managerSigner :>> ', managerSigner)
const fees = await getDepositFees()
console.log('fees :>> ', fees)
const depositAmount = parseFloat(amount) * ((100 + fees) / 100)
console.log('depositAmount :>> ', depositAmount)
// Get wallet balance to check if user has enough funds to deposit
const walletBalance = await getEthersBalance((user.value as UserWithAccountsAndOperators).accounts[0].address)
console.log('walletBalance :>> ', walletBalance)
const value = ethers.utils.parseEther(depositAmount.toString())

const estimatedGas = await managerSigner.estimateGas.depositStake({ value, type: 0 })
const gasLimit = estimatedGas.toNumber()
const bufferFactor = 1.5
const bufferedGasLimit = Math.ceil(gasLimit * bufferFactor)

// Get current network base fee (you might need to adjust this based on your ethers version and setup)
const currentBlock = await provider.getBlock('latest')
const baseFeePerGas = currentBlock.baseFeePerGas

// Set maxPriorityFeePerGas and maxFeePerGas
const maxPriorityFeePerGas = ethers.utils.parseUnits('2', 'gwei') // 2 Gwei, adjust as needed
const maxFeePerGas = baseFeePerGas?.add(maxPriorityFeePerGas).mul(2) // Paying up to 2x the current base fee

const result = await managerSigner.depositStake({
value,
type: 2, // Set to Type 2 for EIP-1559 transactions
gasLimit: bufferedGasLimit,
maxPriorityFeePerGas,
maxFeePerGas
})

console.log('result.hash: ', result.hash)

await result.wait(4)

const receipt = await provider.getTransactionReceipt(result.hash)
console.log('receipt.status: ', receipt.status) // 0 means failed, 1 means succeeded
console.log('receipt.gasUsed: ', receipt.gasUsed.toString())

console.log('value :>> ', value)
const result = await managerSigner.depositStake({ value, type: 2 })
console.log('result :>> ', result)
await result.wait(2)
return true
} catch (err) {
console.log('err :>> ', err)
console.error(`There was an error in deposit function: ${JSON.stringify(err)}`)
return false
}
}


async function getAllTimeStakingRewards() : Promise<BreakdownAmount> {
try {
Expand Down Expand Up @@ -251,10 +205,15 @@ export default function useContracts() {
}
}

async function getDepositFees() {
const fees = await manager.feePercent()
const feesRounded = Math.round(fees * 100) / 100
return feesRounded
async function getDepositFees(): Promise<number> {
try {
const fees = await manager.FEE_PERCENT()
const feesRounded = Math.round(fees * 100) / 100
return feesRounded
} catch (err: any) {
console.error(`There was an error in getDepositFees function: ${JSON.stringify(err)}`)
throw new Error(err)
}
}

async function _getPools(operatorId: number): Promise<Pool[]> {
Expand Down Expand Up @@ -462,7 +421,7 @@ export default function useContracts() {
const signerCreator = signerCreators[signerType as keyof typeof signerCreators]
let signer
if (walletProvider === 'WalletConnect') {
signer = walletConnectSigner.value
signer = nonReactiveWalletConnectWeb3Provider
} else {
signer = signerCreator(walletProvider)
}
Expand Down Expand Up @@ -526,7 +485,7 @@ export default function useContracts() {
const signerCreator = signerCreators[signerType as keyof typeof signerCreators]
let signer
if (walletProvider === 'WalletConnect') {
signer = walletConnectSigner.value
signer = nonReactiveWalletConnectWeb3Provider
} else {
signer = signerCreator(walletProvider)
}
Expand Down
5 changes: 4 additions & 1 deletion apps/web/src/composables/walletConnectV2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,10 @@ export default function useWalletConnectV2() {

async function signWalletConnectMessage(message: string) : Promise<string>{
try {
const signer = walletConnectWeb3Provider.value?.getSigner()
console.log('got to signWalletConnectMessage')
console.log('message :>> ', message)
const signer = nonReactiveWalletConnectWeb3Provider?.getSigner()
console.log('signer :>> ', signer)
return await signer?.signMessage(message) as string
} catch(err) {
console.error('error in signWalletConnectMessage :>> ', err)
Expand Down

0 comments on commit 57e7066

Please sign in to comment.