diff --git a/deployments/notifyRewardAmount/optimism/givpower_distribute_extended_sep_2024.js b/deployments/notifyRewardAmount/optimism/givpower_distribute_extended_sep_2024.js new file mode 100644 index 0000000..ae4b8b8 --- /dev/null +++ b/deployments/notifyRewardAmount/optimism/givpower_distribute_extended_sep_2024.js @@ -0,0 +1,82 @@ +/* eslint-disable no-use-before-define */ +const hre = require("hardhat"); +const { sendReportEmail } = require("../../mailService/mailService"); +const { ethers } = hre; + +const pools = [ + { + address: "0x301C739CF6bfb6B47A74878BdEB13f92F13Ae5E7", + + // https://github.com/Giveth/giveth-dapps-v2/issues/4434 + amount: "1510975", + }, // Garden Unipool +]; + +// Two decimals of precision -> 615 = 6.15 +const distro = [ + 1959, 1980, 1999, 2020, 2042, +]; + +const initTime = 1725386400; // Timestamp of first round in seconds: Tuesday, SEP 3, 2024 18:00:00 GMT + +let UnipoolTokenDistributor, currentTime, nonce; +async function main() { + console.log("Trying to call notifyRewardAmount...", { + date: new Date().toString(), + }); + currentTime = Math.floor(Date.now() / 1000); + const [signer, ...addrs] = await ethers.getSigners(); + nonce = await signer.getTransactionCount(); + UnipoolTokenDistributor = await ethers.getContractFactory( + "UnipoolTokenDistributor", + ); + await notifyRewardAmount(pools[0]); +} + +async function notifyRewardAmount(pool) { + const unipoolTokenDistributor = await UnipoolTokenDistributor.attach( + pool.address, + ); + const periodFinish = await unipoolTokenDistributor.periodFinish(); + const duration = await unipoolTokenDistributor.duration(); + + // 10 minutes of precision + if (periodFinish < currentTime + 60 * 10) { + const pos = Math.floor((currentTime - initTime) / duration); + console.log("pos:", pos); + if (pos < 0) return; + if (distro[pos] === 0) return; + const amount = ethers.utils + .parseEther(pool.amount) + .mul(distro[pos]) + .div(10000); + console.log( + "UnipoolTokenDistributor - notifyRewardAmount:", + pool.address, + "->", + ethers.utils.formatEther(amount.toString()), + ); + const tx = await ( + await unipoolTokenDistributor.notifyRewardAmount(amount, { nonce }) + ).wait(); + nonce += 1; + console.log("tx:", tx); + await sendReportEmail({ + farm: "Giv power", + network: "Optimisim mainnet", + pool: pool.address, + round: pos + 1, + script: "givpower_distribute_extended_sep_2024.js", + transactionHash: tx.transactionHash, + amount, + }); + } else { + console.log( + "UnipoolTokenDistributor - notifyRewardAmount:", + pool.address, + "already set", + ); + } +} + +main(); diff --git a/deployments/notifyRewardAmount/xDAI/givpower_distribute_extended_sep_2024.js b/deployments/notifyRewardAmount/xDAI/givpower_distribute_extended_sep_2024.js new file mode 100644 index 0000000..78f3d29 --- /dev/null +++ b/deployments/notifyRewardAmount/xDAI/givpower_distribute_extended_sep_2024.js @@ -0,0 +1,86 @@ +/* eslint-disable no-use-before-define */ +const hre = require("hardhat"); +const { sendReportEmail } = require("../../mailService/mailService"); +const { ethers } = hre; + +const pools = [ + { + address: "0xD93d3bDBa18ebcB3317a57119ea44ed2Cf41C2F2", + + // https://github.com/Giveth/giveth-dapps-v2/issues/4434 + amount: "1510975", + }, // Garden Unipool +]; + +// Two decimals of precision -> 615 = 6.15 +const distro = [ + 1959, 1980, 1999, 2020, 2042, +]; + +const initTime = 1725386400; // Timestamp of first round in seconds: Tuesday, SEP 3, 2024 18:00:00 GMT + +let UnipoolTokenDistributor, currentTime, nonce; +async function main() { + try { + console.log("Trying to call notifyRewardAmount...", { + date: new Date().toString(), + }); + currentTime = Math.floor(Date.now() / 1000); + const [signer, ...addrs] = await ethers.getSigners(); + nonce = await signer.getTransactionCount(); + UnipoolTokenDistributor = await ethers.getContractFactory( + "UnipoolTokenDistributor", + ); + await notifyRewardAmount(pools[0]); + } catch (e) { + console.log("error when calling notifyRewardAmount:", e); + throw e; + } +} + +async function notifyRewardAmount(pool) { + const unipoolTokenDistributor = await UnipoolTokenDistributor.attach( + pool.address, + ); + const periodFinish = await unipoolTokenDistributor.periodFinish(); + const duration = await unipoolTokenDistributor.duration(); + + // 10 minutes of precision + if (periodFinish < currentTime + 60 * 10) { + const pos = Math.floor((currentTime - initTime) / duration); + console.log("pos:", pos); + if (pos < 0) return; + const amount = ethers.utils + .parseEther(pool.amount) + .mul(distro[pos]) + .div(10000); + console.log( + "UnipoolTokenDistributor - notifyRewardAmount:", + pool.address, + "->", + ethers.utils.formatEther(amount.toString()), + ); + const tx = await ( + await unipoolTokenDistributor.notifyRewardAmount(amount, { nonce }) + ).wait(); + nonce += 1; + console.log("tx:", tx); + await sendReportEmail({ + farm: "Giv power", + network: "Gnosis", + pool: pool.address, + round: pos + 1, + script: "givpower_distribute_extended_sep_2024.js", + transactionHash: tx.transactionHash, + amount, + }); + } else { + console.log( + "UnipoolTokenDistributor - notifyRewardAmount:", + pool.address, + "already set", + ); + } +} + +main(); diff --git a/deployments/notifyRewardAmount/zkevm/givpower_distribute_extended_sep_2024.js b/deployments/notifyRewardAmount/zkevm/givpower_distribute_extended_sep_2024.js new file mode 100644 index 0000000..d998bf2 --- /dev/null +++ b/deployments/notifyRewardAmount/zkevm/givpower_distribute_extended_sep_2024.js @@ -0,0 +1,82 @@ +/* eslint-disable no-use-before-define */ +const hre = require("hardhat"); +const { sendReportEmail } = require("../../mailService/mailService"); +const { ethers } = hre; + +const pools = [ + { + address: "0xc790f82bf6f8709aa4a56dc11afad7af7c2a9867", + + // https://github.com/Giveth/giveth-dapps-v2/issues/4434 + amount: "159050", + }, // Garden Unipool +]; + +// Two decimals of precision -> 615 = 6.15 +const distro = [ + 1959, 1980, 1999, 2020, 2042, +]; + +const initTime = 1725386400; // Timestamp of first round in seconds: Tuesday, SEP 3, 2024 18:00:00 GMT + +let UnipoolTokenDistributor, currentTime, nonce; +async function main() { + console.log("Trying to call notifyRewardAmount...", { + date: new Date().toString(), + }); + currentTime = Math.floor(Date.now() / 1000); + const [signer, ...addrs] = await ethers.getSigners(); + nonce = await signer.getTransactionCount(); + UnipoolTokenDistributor = await ethers.getContractFactory( + "UnipoolTokenDistributor", + ); + await notifyRewardAmount(pools[0]); +} + +async function notifyRewardAmount(pool) { + const unipoolTokenDistributor = await UnipoolTokenDistributor.attach( + pool.address, + ); + const periodFinish = await unipoolTokenDistributor.periodFinish(); + const duration = await unipoolTokenDistributor.duration(); + + // 10 minutes of precision + if (periodFinish < currentTime + 60 * 10) { + const pos = Math.floor((currentTime - initTime) / duration); + console.log("pos:", pos); + if (pos < 0) return; + if (distro[pos] === 0) return; + const amount = ethers.utils + .parseEther(pool.amount) + .mul(distro[pos]) + .div(10000); + console.log( + "UnipoolTokenDistributor - notifyRewardAmount:", + pool.address, + "->", + ethers.utils.formatEther(amount.toString()), + ); + const tx = await ( + await unipoolTokenDistributor.notifyRewardAmount(amount, { nonce }) + ).wait(); + nonce += 1; + console.log("tx:", tx); + await sendReportEmail({ + farm: "Giv power", + network: "ZKEVM mainnet", + pool: pool.address, + round: pos + 1, + script: "givpower_distribute_extended_sep_2024.js", + transactionHash: tx.transactionHash, + amount, + }); + } else { + console.log( + "UnipoolTokenDistributor - notifyRewardAmount:", + pool.address, + "already set", + ); + } +} + +main(); diff --git a/package.json b/package.json index 9756833..4186aad 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,11 @@ "distributor:xDAI:givPower:extended": "HARDHAT_NETWORK=xDAI ts-node deployments/notifyRewardAmount/xDAI/givpower_distribute_extended.js", "distributor:xDAI:givPower:extended:oct2023": "HARDHAT_NETWORK=xDAI ts-node deployments/notifyRewardAmount/xDAI/givpower_distribute_extended_oct_2023.js", "distributor:xDAI:givPower:extended:may2024": "HARDHAT_NETWORK=xDAI ts-node deployments/notifyRewardAmount/xDAI/givpower_distribute_extended_may_2024.js", + "distributor:xDAI:givPower:extended:sep2024": "HARDHAT_NETWORK=xDAI ts-node deployments/notifyRewardAmount/xDAI/givpower_distribute_extended_sep_2024.js", "distributor:optimismMainnet:givPower:extended": "HARDHAT_NETWORK=optimismMainnet ts-node deployments/notifyRewardAmount/optimism/givpower_distribute_extended.js", "distributor:optimismMainnet:givPower:extended:oct2023": "HARDHAT_NETWORK=optimismMainnet ts-node deployments/notifyRewardAmount/optimism/givpower_distribute_extended_oct_2023.js", - "distributor:optimismMainnet:givPower:extended:may2024": "HARDHAT_NETWORK=optimismMainnet ts-node deployments/notifyRewardAmount/optimism/givpower_distribute_extended_may_2024.js", + "distributor:optimismMainnet:givPower:extended:may2024": "HARDHAT_NETWORK=optimismMainnet ts-node deployments/notifyRewardAmount/optimism/givpower_distribute_extended_sep_2024.js", + "distributor:zkevm:givPower:extended:may2024": "HARDHAT_NETWORK=optimismMainnet ts-node deployments/notifyRewardAmount/zkevm/givpower_distribute_extended_sep_2024.js", "distributor:mainnet:extended": "HARDHAT_NETWORK=mainnet ts-node deployments/notifyRewardAmount/mainnet/distributor_extended.js", "distributor:mainnet:extended2": "HARDHAT_NETWORK=mainnet ts-node deployments/notifyRewardAmount/mainnet/distributor_extended2.js", "distributor:kovan:extended": "HARDHAT_NETWORK=kovan ts-node deployments/notifyRewardAmount/mainnet/distributor_extended.js",