diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f5f09fa --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +artifacts +cache +node_modules +test +*.log +.contract +.wallet + +# TODO: must replace this key strategy +#.env + +hardhat-template \ No newline at end of file diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..7823765 --- /dev/null +++ b/.env.example @@ -0,0 +1,77 @@ +INFURA_ID=000000000000000000000000000000 + +######################################################################## +# Keys +######################################################################## +AVALANCHE_PRIVATE_KEY="0000000000000000000000000000000000000000000000000000000000000000" +BINANCE_PRIVATE_KEY="0000000000000000000000000000000000000000000000000000000000000000" +FANTOM_PRIVATE_KEY="0000000000000000000000000000000000000000000000000000000000000000" +######################################################################## +# Networks +######################################################################## +HARDHAT_FORK_URL="https://api.avax.network/ext/bc/C/rpc" +HARDHAT_CHAIN_ID=431337 +LOCALFORK_URL="http://localfork:8545" +LOCALFORK_PRIVATE_KEY= +LOCALFORK_CHAIN_ID=431337 +AVALANCHE_MAINNET_URL="https://api.avax.network/ext/bc/C/rpc" +AVALANCHE_CHAIN_ID=431337 +BINANCE_MAINNET_URL="https://bsc-dataseed.binance.org/" +FANTOM_MAINNET_URL="https://rpc.ftm.tools/" +######################################################################## +# Payroll +######################################################################## +PAYROLL_ADDRESS_AVAX_MICHAEL="0x" +PAYROLL_ADDRESS_AVAX_MATT="0x" +PAYROLL_ADDRESS_AVAX_MUKHTAR="0x9a5e5fe1450d8accbcaaa6a2b15ae66d578a72c8" +PAYROLL_ADDRESS_AVAX_DAN="0xdaa057d7b58816c40328fb36a67c614e8ac1bc96" +######################################################################## +# Contracts +######################################################################## +RUBYMINE_CONTRACT_ADDRESS="0x31A226acD218fe1FD2E6b26767E670e868b6E65f" +COOKEDRICE_CONTRACT_ADDRESS="0x446BFC36541cC6b4832408Cc7E75A4e2D17CDC15" +BAKEDBEANS_CONTRACT_ADDRESS="0xE2D26507981A4dAaaA8040bae1846C14E0Fb56bF" +LUCKYCAT_CONTRACT_ADDRESS="0xb50e74A6b82F59c4058b5D798E3D9C9D9B8c6e16" +SPOOKYMINER_CONTRACT_ADDRESS="0x99f07e573A962E489bA0EB9042bDa9f0B4be91cF" +MONEYLAUNDRY_CONTRACT_ADDRESS="0xA366C1E80642Abcaa190Ed4Fd7C9bA642228053b" +SPOOKEDBEANS_CONTRACT_ADDRESS="0x63690090B52B1E6E685b88Ca365596b8edb0F379" +######################################################################## +# Flows +######################################################################## +# ---------- FLOW 01 --- strategy when GRAPE over $2 +# Not yet implemented + +# ---------- FLOW 02 --- strategy when GRAPE price between $1.00-$1.99 +# FLOW 02 TASK 01: Enter the ecosystem (purchase MIM from AVAX, purchase GRAPE from MIM) +# Not yet implemented + +# FLOW 02 TASK 02: Stake GRAPE-MIM-LP tokens into the GRAPE-MIM pool in the Vineyard +FLOW_02_TASK_02_MIN_AMOUNT_OF_GRAPE_MIM_LP_TO_START=1 +FLOW_02_TASK_02_DO_WE_STAKE_ALL=TRUE +FLOW_02_TASK_02_AMOUNT_OF_GRAPE_MIM_LP_TO_STAKE=1 + +# FLOW 02 TASK 03: Stake WINE rewards in the Winery +FLOW_02_TASK_03_MIN_AMOUNT_OF_WINE_TO_START=1 +FLOW_02_TASK_03_DO_WE_STAKE_ALL=TRUE +FLOW_02_TASK_03_AMOUNT_OF_WINE_TO_STAKE=1 + +# FLOW 02 TASK 04: stake GRAPE or combine GRAPE with WINE into GRAPE-WINE-LP +FLOW_02_TASK_04_MIN_AMOUNT_OF_GRAPE_TO_START=1 +FLOW_02_TASK_04_PERCENTAGE_OF_GRAPE_TO_STAKE=50 +FLOW_02_TASK_04_PERCENTAGE_OF_GRAPE_TO_COMBINE=50 + +# ---------- FLOW 03 --- GRAPE BELOW $1 +# Not yet implemented + +# ---------- FLOW 04 --- Claim WINE and Deposit 50-50 to WINE-GRAPE-LP and MIM-WINE-LP +# FLOW 04 TASK 01: Claim WINE and stake into WINE-GRAPE-LP and WINE-MIM-LP +FLOW_04_TASK_01_MIN_AMOUNT_OF_MIM_TO_START="0" +FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_REWARDS_TO_START="1" +FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_IN_WALLET="0.25" +FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_GRAPE_LP="33" +FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_MIM_LP="33" + +# ---------- FLOW 05 +FLOW_05_RUN_ID="1" +FLOW_05_MIN_GRAPE_CLAIMABLE="1" +FLOW_05_MIN_WINE_CLAIMABLE="0.01" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aca46cf --- /dev/null +++ b/.gitignore @@ -0,0 +1,55 @@ +lib-cov +*.seed +*.log +*.csv +*.dat +*.out +*.pid +*.gz +*.swp + +pids +logs +results +tmp + +# Build +public/css/main.css + +# Coverage reports +coverage + + +# Dependency directory +node_modules +bower_components +**/node_modules + +# Editors +.idea +*.iml + +# OS metadata +.DS_Store +Thumbs.db + +# Ignore built ts files +dist/**/* + +**/.DS_Store + +#Hardhat files +cache +artifacts +typechain +.contract +.wallet + +# API keys and secrets +.env +**/.env +.env.keys + +transaction-history/* +yarn.lock +hardhat-template diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..7b768e0 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +14.17.6 \ No newline at end of file diff --git a/ABI/BakedBeans.json b/ABI/BakedBeans.json new file mode 100644 index 0000000..b02f817 --- /dev/null +++ b/ABI/BakedBeans.json @@ -0,0 +1 @@ +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"beanRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"buyEggs","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"contractBalance","type":"uint256"}],"name":"calculateEggBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"}],"name":"calculateEggBuySimple","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggs","type":"uint256"}],"name":"calculateEggSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getEggsSinceLastHatch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyEggs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyMiners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"hatchEggs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"seedMarket","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sellEggs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/ABI/CookedRice.json b/ABI/CookedRice.json new file mode 100644 index 0000000..dbcfbfb --- /dev/null +++ b/ABI/CookedRice.json @@ -0,0 +1 @@ +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"contractBalance","type":"uint256"}],"name":"calculateEggBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"}],"name":"calculateEggBuySimple","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggs","type":"uint256"}],"name":"calculateRiceSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"cookRice","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"eatRice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getEggsSinceLastHatch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyMiners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyRice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"reCookRice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IBEP20","name":"tokenAddress","type":"address"}],"name":"recoverWrongTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"riceRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"seedMarket","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/ABI/ERC20.json b/ABI/ERC20.json new file mode 100644 index 0000000..668d697 --- /dev/null +++ b/ABI/ERC20.json @@ -0,0 +1,222 @@ +[ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + } +] \ No newline at end of file diff --git a/ABI/GRAPE.json b/ABI/GRAPE.json new file mode 100644 index 0000000..5cf03e5 --- /dev/null +++ b/ABI/GRAPE.json @@ -0,0 +1 @@ +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"INITIAL_AIRDROP_WALLET_DISTRIBUTION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INITIAL_GENESIS_POOL_DISTRIBUTION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INITIAL_GRAPE_POOL_DISTRIBUTION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_genesisPool","type":"address"},{"internalType":"address","name":"_grapePool","type":"address"},{"internalType":"address","name":"_airdropWallet","type":"address"}],"name":"distributeReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"governanceRecoverUnsupported","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"grapeOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPoolDistributed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_grapeOracle","type":"address"}],"name":"setGrapeOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator_","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/ABI/GrapeFinanceNode.json b/ABI/GrapeFinanceNode.json new file mode 100644 index 0000000..a44f1d6 --- /dev/null +++ b/ABI/GrapeFinanceNode.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"num","type":"uint256"}],"name":"CreateNode","type":"event"},{"inputs":[],"name":"MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"allocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDev","type":"address"}],"name":"changeDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimTreasuryRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nodeTier","type":"uint256"},{"internalType":"uint256","name":"numNodes","type":"uint256"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dripRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dripRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amnt","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalancePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getDayDripEstimate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getDistributionRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getNodes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardDrip","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalNodes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getTotalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"isMaxPayout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastDripTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"maxPayout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxReturnPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_nodeId","type":"uint256"}],"name":"numNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setDripRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"setLastDripTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxReturnPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256[]","name":"_nodes","type":"uint256[]"}],"name":"setNodes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tierAllocPoints","type":"uint256[]"},{"internalType":"uint256[]","name":"_tierAmounts","type":"uint256[]"}],"name":"setTierValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setTreasuryFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"components":[{"internalType":"uint256","name":"total_deposits","type":"uint256"},{"internalType":"uint256","name":"total_claims","type":"uint256"},{"internalType":"uint256","name":"last_distPoints","type":"uint256"}],"internalType":"struct Node.User","name":"_user","type":"tuple"}],"name":"setUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tierAllocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tierAmounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributeRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_deposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_users","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userIndices","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"total_deposits","type":"uint256"},{"internalType":"uint256","name":"total_claims","type":"uint256"},{"internalType":"uint256","name":"last_distPoints","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}] \ No newline at end of file diff --git a/ABI/GrapeFinanceVineyard.json b/ABI/GrapeFinanceVineyard.json new file mode 100644 index 0000000..68957fe --- /dev/null +++ b/ABI/GrapeFinanceVineyard.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"address","name":"_wine","type":"address"},{"internalType":"uint256","name":"_poolStartTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencyWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"TOTAL_REWARDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"bool","name":"_withUpdate","type":"bool"},{"internalType":"uint256","name":"_lastRewardTime","type":"uint256"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fromTime","type":"uint256"},{"internalType":"uint256","name":"_toTime","type":"uint256"}],"name":"getGeneratedReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"governanceRecoverUnsupported","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"lastRewardTime","type":"uint256"},{"internalType":"uint256","name":"accWinePerShare","type":"uint256"},{"internalType":"bool","name":"isStarted","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"runningTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wine","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"winePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/ABI/GrapeFinanceWineNode.json b/ABI/GrapeFinanceWineNode.json new file mode 100644 index 0000000..a44f1d6 --- /dev/null +++ b/ABI/GrapeFinanceWineNode.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"num","type":"uint256"}],"name":"CreateNode","type":"event"},{"inputs":[],"name":"MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"allocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDev","type":"address"}],"name":"changeDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimTreasuryRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nodeTier","type":"uint256"},{"internalType":"uint256","name":"numNodes","type":"uint256"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dripRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dripRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amnt","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalancePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getDayDripEstimate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getDistributionRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getNodes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardDrip","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalNodes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getTotalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"isMaxPayout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastDripTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"maxPayout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxReturnPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_nodeId","type":"uint256"}],"name":"numNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setDripRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"setLastDripTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxReturnPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256[]","name":"_nodes","type":"uint256[]"}],"name":"setNodes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tierAllocPoints","type":"uint256[]"},{"internalType":"uint256[]","name":"_tierAmounts","type":"uint256[]"}],"name":"setTierValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setTreasuryFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"components":[{"internalType":"uint256","name":"total_deposits","type":"uint256"},{"internalType":"uint256","name":"total_claims","type":"uint256"},{"internalType":"uint256","name":"last_distPoints","type":"uint256"}],"internalType":"struct Node.User","name":"_user","type":"tuple"}],"name":"setUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tierAllocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tierAmounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributeRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_deposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_users","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userIndices","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"total_deposits","type":"uint256"},{"internalType":"uint256","name":"total_claims","type":"uint256"},{"internalType":"uint256","name":"last_distPoints","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}] \ No newline at end of file diff --git a/ABI/GrapeFinanceWinery.json b/ABI/GrapeFinanceWinery.json new file mode 100644 index 0000000..e81ecc3 --- /dev/null +++ b/ABI/GrapeFinanceWinery.json @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"uint256","name":"at","type":"uint256"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"allocateSeigniorage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"boardroomHistory","outputs":[{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"rewardReceived","type":"uint256"},{"internalType":"uint256","name":"rewardPerShare","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"name":"canClaimReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"name":"canWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getGrapePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"name":"getLastSnapshotIndexOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"governanceRecoverUnsupported","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"grape","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_grape","type":"address"},{"internalType":"contract IERC20","name":"_share","type":"address"},{"internalType":"contract ITreasury","name":"_treasury","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestSnapshotIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"members","outputs":[{"internalType":"uint256","name":"lastSnapshotIndex","type":"uint256"},{"internalType":"uint256","name":"rewardEarned","type":"uint256"},{"internalType":"uint256","name":"epochTimerStart","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEpochPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardLockupEpochs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_withdrawLockupEpochs","type":"uint256"},{"internalType":"uint256","name":"_rewardLockupEpochs","type":"uint256"}],"name":"setLockUp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"share","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"contract ITreasury","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawLockupEpochs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/ABI/LuckyCat.json b/ABI/LuckyCat.json new file mode 100644 index 0000000..b02f817 --- /dev/null +++ b/ABI/LuckyCat.json @@ -0,0 +1 @@ +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"beanRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"buyEggs","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"contractBalance","type":"uint256"}],"name":"calculateEggBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"}],"name":"calculateEggBuySimple","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggs","type":"uint256"}],"name":"calculateEggSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getEggsSinceLastHatch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyEggs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyMiners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"hatchEggs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"seedMarket","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sellEggs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/ABI/MIM.json b/ABI/MIM.json new file mode 100644 index 0000000..62e59a0 --- /dev/null +++ b/ABI/MIM.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_underlying","type":"address"},{"internalType":"address","name":"_vault","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"auth","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"LogAddAuth","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveHeight","type":"uint256"}],"name":"LogChangeMPCOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveTime","type":"uint256"}],"name":"LogChangeVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txhash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"bindaddr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txhash","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swapin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"bindaddr","type":"address"}],"name":"Swapout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TRANSFER_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"applyMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applyVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newVault","type":"address"}],"name":"changeMPCOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newVault","type":"address"}],"name":"changeVault","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayMinter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"depositVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"address","name":"to","type":"address"}],"name":"depositWithPermit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"address","name":"to","type":"address"}],"name":"depositWithTransferPermit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllMinters","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"initVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"minters","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mpc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"revokeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"setVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setVaultOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"transferWithPermit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/ABI/MoneyLaundry.json b/ABI/MoneyLaundry.json new file mode 100644 index 0000000..b02f817 --- /dev/null +++ b/ABI/MoneyLaundry.json @@ -0,0 +1 @@ +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"beanRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"buyEggs","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"contractBalance","type":"uint256"}],"name":"calculateEggBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"}],"name":"calculateEggBuySimple","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggs","type":"uint256"}],"name":"calculateEggSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getEggsSinceLastHatch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyEggs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyMiners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"hatchEggs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"seedMarket","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sellEggs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/ABI/NodeGRAPE.json b/ABI/NodeGRAPE.json new file mode 100644 index 0000000..a44f1d6 --- /dev/null +++ b/ABI/NodeGRAPE.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"num","type":"uint256"}],"name":"CreateNode","type":"event"},{"inputs":[],"name":"MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"allocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDev","type":"address"}],"name":"changeDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimTreasuryRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nodeTier","type":"uint256"},{"internalType":"uint256","name":"numNodes","type":"uint256"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dripRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dripRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amnt","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalancePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getDayDripEstimate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getDistributionRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getNodes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardDrip","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalNodes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getTotalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"isMaxPayout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastDripTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"maxPayout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxReturnPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_nodeId","type":"uint256"}],"name":"numNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setDripRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"setLastDripTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxReturnPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256[]","name":"_nodes","type":"uint256[]"}],"name":"setNodes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tierAllocPoints","type":"uint256[]"},{"internalType":"uint256[]","name":"_tierAmounts","type":"uint256[]"}],"name":"setTierValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setTreasuryFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"components":[{"internalType":"uint256","name":"total_deposits","type":"uint256"},{"internalType":"uint256","name":"total_claims","type":"uint256"},{"internalType":"uint256","name":"last_distPoints","type":"uint256"}],"internalType":"struct Node.User","name":"_user","type":"tuple"}],"name":"setUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tierAllocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tierAmounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributeRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_deposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_users","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userIndices","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"total_deposits","type":"uint256"},{"internalType":"uint256","name":"total_claims","type":"uint256"},{"internalType":"uint256","name":"last_distPoints","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}] \ No newline at end of file diff --git a/ABI/NodeWINE.json b/ABI/NodeWINE.json new file mode 100644 index 0000000..a44f1d6 --- /dev/null +++ b/ABI/NodeWINE.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"num","type":"uint256"}],"name":"CreateNode","type":"event"},{"inputs":[],"name":"MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"allocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDev","type":"address"}],"name":"changeDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimTreasuryRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nodeTier","type":"uint256"},{"internalType":"uint256","name":"numNodes","type":"uint256"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dripRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dripRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amnt","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalancePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getDayDripEstimate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getDistributionRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getNodes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardDrip","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalNodes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getTotalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"isMaxPayout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastDripTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"maxPayout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxReturnPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_nodeId","type":"uint256"}],"name":"numNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setDripRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"setLastDripTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxReturnPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256[]","name":"_nodes","type":"uint256[]"}],"name":"setNodes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tierAllocPoints","type":"uint256[]"},{"internalType":"uint256[]","name":"_tierAmounts","type":"uint256[]"}],"name":"setTierValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setTreasuryFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"components":[{"internalType":"uint256","name":"total_deposits","type":"uint256"},{"internalType":"uint256","name":"total_claims","type":"uint256"},{"internalType":"uint256","name":"last_distPoints","type":"uint256"}],"internalType":"struct Node.User","name":"_user","type":"tuple"}],"name":"setUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tierAllocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tierAmounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributeRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_deposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_users","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userIndices","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"total_deposits","type":"uint256"},{"internalType":"uint256","name":"total_claims","type":"uint256"},{"internalType":"uint256","name":"last_distPoints","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}] \ No newline at end of file diff --git a/ABI/RubyMine.json b/ABI/RubyMine.json new file mode 100644 index 0000000..4a0169a --- /dev/null +++ b/ABI/RubyMine.json @@ -0,0 +1 @@ +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"_marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_team","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_web","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"buyRubies","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"contractBalance","type":"uint256"}],"name":"calculateRubyBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"}],"name":"calculateRubyBuySimple","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rubies","type":"uint256"}],"name":"calculateRubySell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyMiners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyRubies","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getRubiesSinceLastHarvest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"harvestRubies","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openMines","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"rubyRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellRubies","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/ABI/SpookedBeans.json b/ABI/SpookedBeans.json new file mode 100644 index 0000000..b02f817 --- /dev/null +++ b/ABI/SpookedBeans.json @@ -0,0 +1 @@ +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"beanRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"buyEggs","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"contractBalance","type":"uint256"}],"name":"calculateEggBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"}],"name":"calculateEggBuySimple","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggs","type":"uint256"}],"name":"calculateEggSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getEggsSinceLastHatch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyEggs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyMiners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"hatchEggs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"seedMarket","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sellEggs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/ABI/SpookyMiner.json b/ABI/SpookyMiner.json new file mode 100644 index 0000000..9346a16 --- /dev/null +++ b/ABI/SpookyMiner.json @@ -0,0 +1 @@ +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"boneRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"buyBones","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"contractBalance","type":"uint256"}],"name":"calculateBonesBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"}],"name":"calculateBonesBuySimple","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eggs","type":"uint256"}],"name":"calculateBonesSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getBonesSinceLastHatch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyBones","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyMiners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"hatchBones","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"seedMarket","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sellBones","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/ABI/TraderJoe.json b/ABI/TraderJoe.json new file mode 100644 index 0000000..7f196da --- /dev/null +++ b/ABI/TraderJoe.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_WAVAX","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"WAVAX","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAVAXMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityAVAX","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAVAX","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAVAXMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityAVAX","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAVAX","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAVAXMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityAVAXSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountAVAX","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAVAXMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityAVAXWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountAVAX","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountAVAXMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountAVAX","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapAVAXForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactAVAXForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactAVAXForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForAVAX","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForAVAXSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactAVAX","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}] \ No newline at end of file diff --git a/ABI/WAVAX.json b/ABI/WAVAX.json new file mode 100644 index 0000000..a515ba4 --- /dev/null +++ b/ABI/WAVAX.json @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Withdrawal","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/ABI/WINE.json b/ABI/WINE.json new file mode 100644 index 0000000..41a2e09 --- /dev/null +++ b/ABI/WINE.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"address","name":"_communityFund","type":"address"},{"internalType":"address","name":"_devFund","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"COMMUNITY_FUND_POOL_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_FUND_POOL_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FARMING_POOL_REWARD_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VESTING_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"communityFund","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"communityFundLastClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"communityFundRewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devFund","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFundLastClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFundRewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_farmingIncentiveFund","type":"address"}],"name":"distributeReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"governanceRecoverUnsupported","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPoolDistributed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_devFund","type":"address"}],"name":"setDevFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_communityFund","type":"address"}],"name":"setTreasuryFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator_","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unclaimedDevFund","outputs":[{"internalType":"uint256","name":"_pending","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unclaimedTreasuryFund","outputs":[{"internalType":"uint256","name":"_pending","type":"uint256"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..91b1e04 --- /dev/null +++ b/LICENSE @@ -0,0 +1 @@ +TO-DO diff --git a/README.md b/README.md new file mode 100644 index 0000000..72f72bc --- /dev/null +++ b/README.md @@ -0,0 +1,353 @@ +nvm **Fork avalanche mainnet in a separate terminal:** + + + +``` + +npx hardhat node --fork https://api.avax.network/ext/bc/C/rpc + +``` + + + +** Feature Pay: ** +```bash +npx hardhat pay --person michael --amount 2500 --origin VINEYARD_GRAPE_WINE_LP_STAKED --network local +``` +available options for person: ```michael, matt, mukhtar, dan``` +available options for origin: ```WINE, MIM, GRAPE, VINEYARD_GRAPE_WINE_LP_STAKED, VINEYARD_GRAPE_MIM_LP_STAKED, VINEYARD_MIM_WINE_LP_STAKED``` + +*to-do/in-process: ```WINERY_GRAPE_STAKED; VINEYARD_GRAPE_STAKED``` + + + +**Flow commands:** + + + + + +1- Swap AVAX for MIM at TraderJoe: + + + +```bash + + + +npx hardhat swapnative --network local --protocol traderjoe --tokenin wavax --tokenout mim --amount 1000.0 + + + +``` + + + + + +2- Swap MIM for GRAPE at TraderJoe: + + + +```bash + + + +npx hardhat swaptokens --network local --protocol traderjoe --tokenin mim --tokenout grape --amount 20000.0 + + + +``` + + + + + +3- Add Liquidity to GRAPEMIMLP at TraderJoe: + + + +```bash + + + +npx hardhat addliquidity --network local --protocol traderjoe --token1 grape --token2 mim --amount1 4000.0 --amount2 2920.0 + + + +``` + + + + + +4- Deposit GRAPEMIMLP at the Vineyard: + + + +```bash + + + +npx hardhat deposit --network local --protocol grapefinance-vineyard --amount 1900.0 --liquiditypair grape-mim-lp + + + +``` + + + + + +5.1. - Claim $WINE from the GRAPEMIMLP pool at the Vineyard: + + + +```bash + + + +npx hardhat poolclaim --network local --protocol grapefinance-vineyard --pool grapemimlp --amount 0 + + + +``` + + + +5.2. - Claim $WINE from NODE-WINE: + + + +```bash + + + +npx hardhat claim --network local --protocol grapefinance-winenode + + + +``` + + + +5.3. - Claim $GRAPE from NODE-GRAPE: + + + +```bash + + + +npx hardhat claim --network local --protocol grapefinance-grapenode + + + +``` + + + + + +6.1 - Stake $WINE at the Winery: + + + +```bash + + + +npx hardhat stake --network local --protocol grapefinance-winery --token wine --amount 1.0 + + + +``` + + + +6.2 - Stake $GRAPE at the Vineyard: + +```bash + + + +npx hardhat stake --network local --protocol grapefinance-vineyard --token grape --amount 10.0 + + + +``` + + + +7- Claim $GRAPE from the Winery: (CHECKED OK MAINNET) -- after claim there is a 12h lockup (2 epochs). + + + +```bash + + + +npx hardhat claim --network local --protocol grapefinance-winery + + + +``` + + + + + +8- Buy GRAPE Node: + + + +```bash + + + +npx hardhat buynode --network local --protocol grapefinance-grapenode --node grape --amount 50.0 + + + +``` + + + +9- Buy WINE Node: + + + +```bash + + + +npx hardhat buynode --network local --protocol grapefinance-winenode --node wine --amount 0.5 + + + +``` + + + + + +Other available commands: + + + +```bash + + + +npx hardhat checkfunds --network local + + + +``` + + + + + +```bash +npx hardhat mine --network local +``` + + +```bash +npx hardhat journal --network local +``` + + + +Withdraw GRAPE-MIM-LP Liquidity at Vineyard + + + +```bash + + + +npx hardhat poolclaim --network local --protocol grapefinance-vineyard --pool grapemimlp --amount 10 + + + +``` + + + + + +Remove GRAPE-MIM-LP Liquidity at Trader Joe: + + + +```bash + + + +npx hardhat removeliquidity --network local --protocol traderjoe --liquiditypair grape-mim-lp --token1 grape --token2 mim --amount 100.0 + + + +``` + + + + + +Swap MIM for WINE at TraderJoe: + + + +```bash + + + +npx hardhat swaptokens --network local --protocol traderjoe --tokenin mim --tokenout wine --amount 1000.0 + + + +``` + + +Withdraw GRAPE staked at the VINEYARD: +```bash +npx hardhat poolclaim --network local --protocol grapefinance-vineyard --pool vineyard --amount 10 +``` + +Withdraw WINE staked at the WINERY: +```bash +npx hardhat withdraw --network local --protocol grapefinance-winery --pool winery --amount 0.5 +``` + + + +**Flows:** + + + +``` + + + +npx hardhat grapeFlow05 --network local + + + +``` + + + + +```bash + + + +npx hardhat simGrapeFlow05 --network local + + + +``` + + diff --git a/accounting/Ledger.ts b/accounting/Ledger.ts new file mode 100644 index 0000000..1bdf098 --- /dev/null +++ b/accounting/Ledger.ts @@ -0,0 +1,180 @@ +import * as fs from 'fs/promises'; +import { PathLike } from 'fs'; +import { exec } from "node:child_process"; +import util from "node:util"; + +import { Balances } from '../tasks/tasks'; + + +//////////////////////////////////////////////// + /* + for Protocols: + assets:protocols:{protocol}:{chain}:{pool}:{measure} + assets:protocols:grapefinance:AVAX:grapemimlp:yields + assets:protocols:grapefinance:AVAX:grapemimlp:rewards + assets:protocols:grapefinance:AVAX:grapemimlp:deposits + + assets:protocols:grapefinance:AVAX:grapenode:count + assets:protocols:grapefinance:AVAX:grapenode:yields + + for Wallets: + assets:wallets:{id}:{chain}:{asset} + assets:wallets:0x14815bC2CcdbA41AabeFa9691a4F170cC35Fc1D6:AVAX:MIM + */ +//////////////////////////////////////////////// + +export default class Ledger { + + public filename: string; + public filepath: PathLike | fs.FileHandle = ''; + + constructor({ filename }: { filename: string }) { + this.filename = filename + '.journal'; + this.filepath = 'accounting/' + this.filename; + }; + + async createFile() { + if (this.filepath) { + // TODO: check before if file already exists, because it will override + try { + await fs.writeFile(this.filepath, ''); + + } catch (err) { + console.log(err); + } + } + } + + async setInitialBalances(balances: Balances) { + const isodate = new Date().toISOString().split('T')[0]; + let line = isodate + ' opening balances' + '\n'; + await fs.appendFile(this.filepath, line); + + for (const [k, v] of Object.entries(balances['wallet'])) { + line = '\t' + 'assets:wallet:' + k.toLowerCase() + '\t\t\t\t' + v['amount'] + ' ' + k + '\n'; + await fs.appendFile(this.filepath, line); + } + + for (const [k, v] of Object.entries(balances['buckets'])) { + line = '\t' + 'assets:buckets:' + k.toLowerCase() + '\t\t\t\t' + v['amount'] + ' ' + k + '\n'; + await fs.appendFile(this.filepath, line); + } + + line = '\t' + 'equity'; + await fs.appendFile(this.filepath, line); + } + + async setPricingInfo(balances: Balances) { + + const isodate = new Date().toISOString().split('T')[0]; + let line = '\n\n'; + await fs.appendFile(this.filepath, line); + + for (const [k, v] of Object.entries(balances['wallet'])) { + let line = 'P ' + isodate + ' ' + k.toLowerCase() + ' ' + v['price'] + '\n'; + await fs.appendFile(this.filepath, line); + } + + } + + async execCommand(cmd: string){ + const execPromise = util.promisify(exec); + try { + // wait for exec to complete + const { stdout, stderr } = await execPromise(cmd); + console.log(stdout); + } catch (error) { + console.log(error); + } + } + + + async printBalanceSheet() { + console.log('printBalanceSheet'); + //const cmd = 'hledger -f ledger/ledger.journal bal -YEB' + const cmd = 'hledger -f ' + this.filepath + ' bs'; + await this.execCommand(cmd); + } + + async printRegister() { + const cmd = 'hledger -f ' + this.filepath + ' register'; + this.execCommand(cmd); + } + + async checkFileExists(): Promise{ + + let exists; + try { + await fs.readFile(this.filepath) + .then(function (result: any) { + // console.log("" + result); + exists = true; + }) + .catch(function (error: any) { + console.log(error); + exists = false; + }) + } catch (err) { + console.error(err) + exists = false; + } + + return exists; + + } + + async execAddTransaction(delta: Balances, concept: string | undefined) { + const parsedConcept = concept? concept:''; + + const isodate = new Date().toISOString().split('T')[0]; + let line = '\n\n' + isodate + ' ' + parsedConcept + '\n'; + await fs.appendFile(this.filepath, line); + + for (const [k, v] of Object.entries(delta['wallet'])) { + line = '\t' + 'assets:wallet:' + k.toLowerCase() + '\t\t\t\t' + v['amount'] + ' ' + k + '\n'; + await fs.appendFile(this.filepath, line); + } + + for (const [k, v] of Object.entries(delta['buckets'])) { + line = '\t' + 'assets:buckets:' + k.toLowerCase() + '\t\t\t\t' + v['amount'] + ' ' + k + '\n'; + await fs.appendFile(this.filepath, line); + } + // let line = '\t' + 'equity'; + // await fs.appendFile(this.filepath, line); + } + + async addTransaction(delta: Balances, concept: string | undefined) { + + const fileExists = await this.checkFileExists(); + + if (fileExists) { + // console.log('fileexists!'); + await this.execAddTransaction(delta, concept); + } else { + // console.log('file does not exist!'); + this.filename = 'ledger' + '.journal'; + this.filepath = 'accounting/' + this.filename; + await this.createFile(); + await this.execAddTransaction(delta, concept); + } + + } + + async getPnL() { + console.log("getPnL: to-do"); + /* + const execPromise = util.promisify(exec); + const cmd= 'hledger -f ledger/ledger.journal roi --inv Assets -b 2022-01-01 -e 2022-12-31 --pnl Income --yearly --value=then'; + try { + // wait for exec to complete + const { stdout, stderr } = await execPromise(cmd); + console.log(stdout); + } catch (error) { + console.log(error); + } + */ + } + + + +} \ No newline at end of file diff --git a/accounting/Tracker.ts b/accounting/Tracker.ts new file mode 100644 index 0000000..c799754 --- /dev/null +++ b/accounting/Tracker.ts @@ -0,0 +1,102 @@ +import * as fs from 'fs/promises'; +import { PathLike } from 'fs'; +import { exec } from "node:child_process"; +import util from "node:util"; + +import { Balances } from '../tasks/tasks'; + + +export default class Tracker { + + public filename: string; + public filepath: PathLike | fs.FileHandle = ''; + + constructor({ filename }: { filename: string }) { + this.filename = filename + '.csv'; + this.filepath = 'accounting/' + this.filename; + }; + + async createFile() { + if (this.filepath) { + // TODO: check before if file already exists, because it will override + try { + + const header = 'Date, Concept, Account, Asset, Amount'; + await fs.appendFile(this.filepath, header); + + } catch (err) { + console.log(err); + } + } + } + + + async execCommand(cmd: string) { + const execPromise = util.promisify(exec); + try { + // wait for exec to complete + const { stdout, stderr } = await execPromise(cmd); + console.log(stdout); + } catch (error) { + console.log(error); + } + } + + + async checkFileExists(): Promise{ + + let exists; + try { + await fs.readFile(this.filepath) + .then(function (result: any) { + // console.log("" + result); + exists = true; + }) + .catch(function (error: any) { + console.log(error); + exists = false; + }) + } catch (err) { + console.error(err) + exists = false; + } + + return exists; + + } + + async execAddTransaction(delta: Balances, concept: string | undefined) { + const parsedConcept = concept ? concept : ''; + + const isodate = new Date().toISOString() + + for (const [k, v] of Object.entries(delta['wallet'])) { + const line = '\r\n' + isodate + ',' + parsedConcept + ',' + 'wallet' + ',' + k.toLowerCase() + ',' + v['amount']; + await fs.appendFile(this.filepath, line); + } + + for (const [k, v] of Object.entries(delta['buckets'])) { + const line = '\r\n' + isodate + ',' + parsedConcept + ',' + 'buckets' + ',' + k.toLowerCase() + ',' + v['amount']; + await fs.appendFile(this.filepath, line); + } + } + + async addTransaction(delta: Balances, concept: string | undefined) { + + const fileExists = await this.checkFileExists(); + + if (fileExists) { + // console.log('fileexists!'); + await this.execAddTransaction(delta, concept); + } else { + // console.log('file does not exist!'); + this.filename = 'tracker' + '.csv'; + this.filepath = 'accounting/' + this.filename; + await this.createFile(); + await this.execAddTransaction(delta, concept); + } + + } + + +} \ No newline at end of file diff --git a/accounting/ledger.journal b/accounting/ledger.journal new file mode 100644 index 0000000..f0af94b --- /dev/null +++ b/accounting/ledger.journal @@ -0,0 +1,6351 @@ +2022-06-08 opening balances + assets:wallet:avax 4.3212709695 AVAX + assets:wallet:mim 47.44117235034511 MIM + assets:wallet:grape 27.033738762624562 GRAPE + assets:wallet:wine 0.10375307627134266 WINE + assets:wallet:grape_mim_lp 0.3459936007073787 GRAPE_MIM_LP + assets:wallet:grape_wine_lp 0.05213227023504583 GRAPE_WINE_LP + assets:wallet:mim_wine_lp 0.024096165992794297 MIM_WINE_LP + assets:buckets:nodes_grape 0 NODES_GRAPE + assets:buckets:nodes_grape_claimable 0 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine 1 NODES_WINE + assets:buckets:nodes_wine_claimable 0.037678431152517816 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked 56 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.02114709017598447 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked 1 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.011173868552299158 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked 1.3 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.014305811153330503 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked 40 VINEYARD_GRAPE_STAKED + assets:buckets:vineyard_grape_staked_wine_claimable 0.01223880669526952 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable 14.807147047595896 WINERY_GRAPE_CLAIMABLE + assets:buckets:winery_wine_staked 1 WINERY_WINE_STAKED + equity + +2022-06-08 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 0.021149135742795366 WINE + assets:buckets:nodes_wine_claimable 0.0000031411306457770904 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.02114709017598447 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.782340680779042e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.390451570391671e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 6.449813878001837e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-08 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 4.649015476754226e-8 WINE + assets:buckets:nodes_wine_claimable 7.138933285494309e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.5414410638528442e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.6796480841602124e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4658667920122714e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-08 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632150000000514 AVAX + assets:wallet:wine 4.649015475366447e-8 WINE + assets:buckets:nodes_wine_claimable 7.138933286188198e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.5414410638528442e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.67964808398674e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4658667878489351e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-08 grapefinance-winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 14.807147047595894 GRAPE + assets:buckets:nodes_wine_claimable 1.4277866571682507e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.2980309576e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.082882127532216e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.359296168493897e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.931733584024543e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -14.807147047595896 WINERY_GRAPE_CLAIMABLE + + +2022-06-08 grapefinance-winenode.claim + assets:wallet:avax -0.025600725000000324 AVAX + assets:wallet:wine 0.03768192922982788 WINE + assets:buckets:nodes_wine_claimable -0.03768185784049503 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.649015476e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.5414410638528442e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.6796480841602124e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4658667880224074e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-08 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 0.02121198814557866 WINE + assets:buckets:nodes_wine_claimable 0.0000012121856033248113 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.02121119789132893 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.560014183243531e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.5114258095604016e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.490105604404519e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-08 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 5.578265292321971e-7 WINE + assets:buckets:nodes_wine_claimable 4.991352484245981e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.9576579048281861e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.0152344127472022e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9041984031936687e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-08 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632150000000514 AVAX + assets:wallet:wine 6.043120733545404e-7 WINE + assets:buckets:nodes_wine_claimable 4.991352484245981e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -1.39456632336e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.8070688352286868e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.1831706138036866e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4647680023939513e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-08 grapefinance-winery.claimReward + assets:wallet:avax -0.02354579999999995 AVAX + assets:wallet:grape 15.558462846252286 GRAPE + assets:buckets:nodes_wine_claimable 9.269654613688894e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7188435284e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.8070688352286868e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.0076172063736011e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.7577216027998832e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -15.558462846252286 WINERY_GRAPE_CLAIMABLE + + +2022-06-08 grapefinance-winenode.claim + assets:wallet:avax -0.025600724999999436 AVAX + assets:wallet:wine 0.037781367296762555 WINE + assets:buckets:nodes_wine_claimable -0.03778079688193455 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.1836989700799997e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.0541234872138427e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.0152344127472022e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 7.323840012056493e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632150000000514 AVAX + assets:wallet:wine 0.000009883897915285988 WINE + assets:buckets:nodes_wine_claimable 0.000013041474535645248 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000003009192029564123 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.0000036119147409641172 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000003134389439000268 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 4.5131953951838e-8 WINE + assets:buckets:nodes_wine_claimable 5.955011203508803e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3740602875997321e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.649276137535849e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4312280558620438e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632150000000514 AVAX + assets:wallet:wine 0.000006814925046616516 WINE + assets:buckets:nodes_wine_claimable 0.000008992066917272272 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000002074831034083041 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.0000024904069675125984 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.0000021611543620410345 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 4.5131953924082424e-8 WINE + assets:buckets:nodes_wine_claimable 5.955011203508803e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3740602872527874e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.649276137535849e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4312280560355162e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 0.000030238409147370637 WINE + assets:buckets:nodes_wine_claimable 0.00003989857506339102 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000009206203926062986 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000011050150120758134 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000009589227964078989 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632150000000514 AVAX + assets:wallet:wine 4.5131953924082424e-8 WINE + assets:buckets:nodes_wine_claimable 5.955011203508803e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3740602875997321e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.649276137535849e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4312280560355162e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 9.929029868849248e-7 WINE + assets:buckets:nodes_wine_claimable 0.0000013101024647676 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.022932632441855e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.6284075023360063e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.148701719600522e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 4.5131953951838e-8 WINE + assets:buckets:nodes_wine_claimable 5.955011203508803e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3740602874262597e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.6492761371889042e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4312280520456522e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.000007085716770327544 WINE + assets:buckets:nodes_wine_claimable 0.000009349367589481933 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.0000021572746513303515 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.00000258936353576128 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.0000022470280453198987 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 4.5131953951838e-8 WINE + assets:buckets:nodes_wine_claimable 5.955011203508803e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3740602874262597e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.649276137535849e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4312280558620438e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.00004440984268805348 WINE + assets:buckets:nodes_wine_claimable 0.00005859731024235402 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000013520753228725424 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000016228877192277225 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000014083284054720521 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 4.5131953951838e-8 WINE + assets:buckets:nodes_wine_claimable 5.955011203508803e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3740602875997321e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.6492761371889042e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4312280560355162e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632150000000514 AVAX + assets:wallet:wine 0.003823103180804449 WINE + assets:buckets:nodes_wine_claimable 0.0000013735835894604365 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.003822051533969536 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.156764467153461e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.7926959290529583e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.288690272398864e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 4.572377537703787e-8 WINE + assets:buckets:nodes_wine_claimable 5.972102562912945e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3725062900440954e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.6489982299777717e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4298653358557623e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068300000000704 AVAX + assets:wallet:grape 2.2649672468471422 GRAPE + assets:buckets:nodes_wine_claimable 1.1944205125739155e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.1447550824e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.7450125800881908e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.297996460302488e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.8597306680686052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.264967246847142 WINERY_GRAPE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632150000000514 AVAX + assets:wallet:wine 0.00385904844782492 WINE + assets:buckets:nodes_wine_claimable 0.0000011346238403143333 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.003858179820037816 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.604414971723451e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.132789929173596e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.715934761202826e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 4.571725195634535e-8 WINE + assets:buckets:nodes_wine_claimable 5.971704422711582e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3707447220692726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.64883680493777e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.429439347964967e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068300000000704 AVAX + assets:wallet:grape 2.2649672468471422 GRAPE + assets:buckets:nodes_wine_claimable 5.971704422711582e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5717251944e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3707447218958002e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.6488368045908253e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.429439347964967e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.264967246847142 WINERY_GRAPE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632150000000514 AVAX + assets:wallet:wine 0.003930502062709229 WINE + assets:buckets:nodes_wine_claimable 5.367304488782323e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.003929953464146472 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.6403012685801965e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.9782906994503247e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.7124113500105453e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable 0.7605471031970241 WINERY_GRAPE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 5.028775302839961e-7 WINE + assets:buckets:nodes_wine_claimable 4.1745701579581906e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -9.1433093752e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.2302259514394842e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.4837180245877435e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.284308512802812e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.02354579999999995 AVAX + assets:wallet:grape 3.025514350044162 GRAPE + assets:buckets:nodes_wine_claimable 7.156405985031533e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.48544736544e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.6403012685801965e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.9782164476997433e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.712411349993198e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -3.025514350044166 WINERY_GRAPE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.015782940408543222 WINE + assets:buckets:nodes_wine_claimable 0.000001428944869371 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000010966859132320058 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.247451786491523e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.015782544886281082 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.4224133439904325e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.01244568812438529 WINE + assets:buckets:nodes_wine_claimable 5.95393695579999e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.569524640798798e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.01244567459333617 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.6480094255e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4260055599887855e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.015785016900419446 WINE + assets:buckets:nodes_wine_claimable 4.7625700677015465e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.026477102079946e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.4884154021267693e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.015784835619382636 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.283405003989907e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.012447514816015165 WINE + assets:buckets:nodes_wine_claimable 7.143855101547983e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.112572174480041e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.012447393036573183 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.4832084830200001e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.5686061160050113e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw [pid 0 grapemimlp] + assets:wallet:avax -0.019632150000000514 AVAX + assets:wallet:wine 0.0001285562649769867 WINE + assets:buckets:nodes_wine_claimable 0.00006227818055676599 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.000080759037259432 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000014153477369421 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000017238178591531998 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000014916018157040342 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-vineyard.withdraw [pid 1 mimwinelp] + assets:wallet:avax -0.019634849999999204 AVAX + assets:wallet:wine 0.00001727113878005615 WINE + assets:buckets:nodes_wine_claimable 5.95393695570004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5695246352e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3531049110000181e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.000017254658685787 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4260055599887855e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.029448225000000328 AVAX + assets:wallet:wine 0.005912312128630665 WINE + assets:buckets:nodes_wine_claimable -0.000064540676599937 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.569524640800001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.353104911099968e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.6480094255e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4260055599887855e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-09 traderjoe.swapExactAVAXForTokens[tokenInAmount 1000000000000000000][tokenIn wavax][tokenOut mim] + assets:wallet:avax -1.0230526000000002 AVAX + assets:wallet:mim 24.860374854835555 MIM + assets:buckets:nodes_wine_claimable 0.000030337623382353 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000023304575655759998 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000006900835046275999 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000008404848070441 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000007272628355720762 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.019632150000000514 AVAX + assets:wallet:wine 0.015348389848574617 WINE + assets:buckets:nodes_wine_claimable 0.0000017894689072622816 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.015346676716760536 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.402776370091317e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 6.26552491503167e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 4.417037080019226e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634849999999204 AVAX + assets:wallet:wine 0.0056347584812048435 WINE + assets:buckets:nodes_wine_claimable 4.970746964733097e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.7586994784e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.5007712138997986e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.005634741076968972 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2269547440546535e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.004735115607971518 WINE + assets:buckets:nodes_wine_claimable 4.970746964733097e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.7586994840000006e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.004735100600259366 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7404235875e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2269547437077089e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068300000000704 AVAX + assets:wallet:grape 11.677206985321881 GRAPE + assets:buckets:nodes_wine_claimable 4.9707469643861524e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.758699484e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.5007712139e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7404235875e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2269547440546535e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -11.677206985321876 WINERY_GRAPE_CLAIMABLE + + +2022-06-13 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.025600724999999436 AVAX + assets:wallet:wine 0.026057904045113628 WINE + assets:buckets:nodes_wine_claimable -0.026057854337643988 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.758699484e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.5007712139e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7404235874999997e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2269547482179899e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.00003687992099679627 WINE + assets:buckets:nodes_wine_claimable 0.000038321009895929 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -1.90347979304e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000011570946059278 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000013418665859671999 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.00000945982108003715 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.00001348828280317571 WINE + assets:buckets:nodes_wine_claimable 4.9702995974000314e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.7586994784e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.500771213899968e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.000013470878567297 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2269547440546535e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.00001163097690784487 WINE + assets:buckets:nodes_wine_claimable 4.9702995974000314e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.7586994840000006e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.000011615969195695 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7404235875e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2269547440546535e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.019632150000000514 AVAX + assets:wallet:wine 0.015394595876598083 WINE + assets:buckets:nodes_wine_claimable 9.937385136923882e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.01539364416817388 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.9995478344896354e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4808471750108483e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.4539094888031965e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634849999999204 AVAX + assets:wallet:wine 0.005651657994239528 WINE + assets:buckets:nodes_wine_claimable 4.9686925684966354e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.7585421184e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.4997739172101232e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.005651640590003655 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2269547482179899e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0047496792903290175 WINE + assets:buckets:nodes_wine_claimable 4.9686925684966354e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.7585421184e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.00474966429258985 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7404235875e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2269547437077089e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068300000000704 AVAX + assets:wallet:grape 11.677206985321881 GRAPE + assets:buckets:nodes_wine_claimable 9.937385136993271e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.517084242399999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.9995478344e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4808471749999994e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.453909488109307e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -11.677206985321876 WINERY_GRAPE_CLAIMABLE + + +2022-06-13 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.025600724999999436 AVAX + assets:wallet:wine 0.02610620555682977 WINE + assets:buckets:nodes_wine_claimable -0.026106155869904082 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.7585421240000013e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.4997739173e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7404235875000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2269547440546535e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.019632150000000514 AVAX + assets:wallet:wine 0.015399544760403783 WINE + assets:buckets:nodes_wine_claimable 6.459300339010932e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.015399068906191712 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.4997739172448177e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7404235875054241e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.3496502192233972e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634849999999204 AVAX + assets:wallet:wine 0.0056536420771292895 WINE + assets:buckets:nodes_wine_claimable 5.962431082195963e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.2826879087999996e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3497965255238054e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.005653485439006412 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1042592699961329e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0047515390099864 WINE + assets:buckets:nodes_wine_claimable 4.968692568461941e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.75854212064e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.004751389032594682 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7404235875e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2269547444015982e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-13 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.02354579999999995 AVAX + assets:wallet:grape 11.677206985321881 GRAPE + assets:buckets:nodes_wine_claimable 6.459300339010932e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.186104757279999e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.4997739172400002e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.26255066376e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8404321168105642e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -11.677206985321876 WINERY_GRAPE_CLAIMABLE + + +2022-06-13 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.025600725000000324 AVAX + assets:wallet:wine 0.026113410161054063 WINE + assets:buckets:nodes_wine_claimable -0.026112913352166818 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.758542121199999e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.6497513089699998e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.2625506637499997e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2269547444015982e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.003929792459597514 WINE + assets:buckets:nodes_wine_claimable 0.0000016875736882958695 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.00392816168451028 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.802949691170254e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 6.217979801779409e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 4.5903707492078727e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0014809255284877199 WINE + assets:buckets:nodes_wine_claimable 4.687704689698702e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299307928e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920122165e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.00148090825632158 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029881269416e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0011675679566065522 WINE + assets:buckets:nodes_wine_claimable 4.687704689698702e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299307984e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.001167554615079655 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166115e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 2.754180396138814 GRAPE + assets:buckets:nodes_wine_claimable 4.687704689698702e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299307984000004e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166116e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029877799969e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.7541803961388154 WINERY_GRAPE_CLAIMABLE + + +2022-06-14 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.00413343551837958 WINE + assets:buckets:nodes_wine_claimable -0.004133388641332687 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.529930798399999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999999e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166116999997e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 nodeContract.approve + assets:wallet:avax -0.010401525000000245 AVAX + assets:buckets:nodes_wine_claimable 4.6855288134e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.529930798400002e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.334152692e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166115000006e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029881269416e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-grapenode.create[nodeTier 0][numNodes 1] + assets:wallet:avax -0.04883152500000021 AVAX + assets:wallet:grape -50 GRAPE + assets:buckets:nodes_grape 1 NODES_GRAPE + assets:buckets:nodes_grape_claimable 0.001188058891065944 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3710576269e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.059861596800001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.454433223100001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.000009467555367737024 WINE + assets:buckets:nodes_grape_claimable 0.0015971917542144832 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000009511623491303999 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -2.71795847848e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000002708329964741 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.0000035062497215579997 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.0000025884590615192493 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.01963484999999965 AVAX + assets:wallet:wine 0.000003609882718247359 WINE + assets:buckets:nodes_grape_claimable 0.000007867939675932929 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6855288135000896e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299307928e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000193e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.000003592610552137 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.000002788379126261731 WINE + assets:buckets:nodes_grape_claimable 0.000007867939675932929 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.68552881339997e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299307984e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.00000277503759934 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166115e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029881269416e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.000009745899931967728 WINE + assets:buckets:nodes_grape_claimable 0.000007867939675933796 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable -0.000009699044643842 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299307984000004e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166117000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.023130000000000095 AVAX + assets:wallet:wine 1.811972318854771e-7 WINE + assets:wallet:grape_mim_lp 8.73078696804397 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000007867939675933362 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6847166551e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -8.730786968043972 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -1.35897923896e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999999e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166115999995e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029881269416e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.removeLiquidity + assets:wallet:avax -0.01038735000000024 AVAX + assets:buckets:nodes_grape_claimable 0.000007867939675933796 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6847166551e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8237143923e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.334152692e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166115000006e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04238212500000005 AVAX + assets:wallet:mim 11.241458358828623 MIM + assets:wallet:grape 10.51842588016275 GRAPE + assets:wallet:grape_mim_lp -8.73078696804397 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000015735879351866724 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.369433310200001e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6474287846e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4544332231999996e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.000007867939675932929 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.684716655099998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8237143923e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999994e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166116e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.swapExactTokensForTokens[tokenInAmount 23018231657362090203][tokenIn mim][tokenOut grape] + assets:wallet:avax -0.030133124999999872 AVAX + assets:wallet:mim -23.018231657362087 MIM + assets:wallet:grape 21.472768159960932 GRAPE + assets:buckets:nodes_grape_claimable 0.000015735879351867158 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.369433310299998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.647428789400001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4544332232e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.550205971743602e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.010406925000000289 AVAX + assets:buckets:nodes_grape_claimable 0.000007867939675932929 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6847166551000004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8237143922999987e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999994e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166115000013e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.020806199999999997 AVAX + assets:buckets:nodes_grape_claimable 0.000015735879351867158 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.369433310199998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6474287847e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4544332232e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 grape][token2 wine][amount1 21602560307266386985][amount2 128783299848874849] + assets:wallet:avax -0.05579032500000025 AVAX + assets:wallet:grape -21.602560307266383 GRAPE + assets:wallet:wine -0.08745148821369822 WINE + assets:wallet:grape_wine_lp 1.2599034517867767 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023603819027800087 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.40541499653e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.14711431817e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.002458076000001e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.181649834799999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.825308956054152e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007867939675933796 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6847166552000005e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.823714392300001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999981e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166115000013e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP grape-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 1.4675679613218584e-7 WINE + assets:wallet:grape_wine_lp -1.3113797041608115 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000015735879351866724 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.369433310299998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6474287847e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked 1.3113797041608115 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -1.20073742279e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4544332232e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.000007867939675932929 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.684716655099998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.823714397000002e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0823542683e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166116000015e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.01312964999999977 AVAX + assets:buckets:nodes_grape_claimable 0.000015735879351867158 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.369433310200001e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.647428789299998e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.1647085367e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.454433223300003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 mim][token2 wine][amount1 33725878591224429215][amount2 128783299848874849] + assets:wallet:avax -0.04821682499999991 AVAX + assets:wallet:mim -33.72587859122443 MIM + assets:wallet:wine -0.12828596456552907 WINE + assets:wallet:mim_wine_lp 1.7373837693716954 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023603819027800087 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.4054149965300004e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1471143181700002e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.2470628053e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.181649834800002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.825308956054152e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.00000786793967593423 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.684716655199995e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.823714392300001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.082354268400001e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7272166116000015e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029877799969e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP mim-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 2.9362682397310325e-7 WINE + assets:wallet:mim_wine_lp -1.7605991953968074 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000015735879351867158 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.369433310299998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.647428789299998e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.164708536799999e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked 1.7605991953968074 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -2.5908249174e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.550205971743602e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.003943699166637282 WINE + assets:buckets:nodes_wine_claimable 0.0000019211260739145433 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.00394184190176364 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.470026037161183e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.081032357498986e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.227922242403982e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0014862276361742865 WINE + assets:buckets:nodes_wine_claimable 4.685673351059738e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299143232e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919905325e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.001486210365363656 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0011716638053709816 WINE + assets:buckets:nodes_wine_claimable 4.685673350973002e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299143288000007e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.001171650463844066 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270810627e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029881269416e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 2.754180396138814 GRAPE + assets:buckets:nodes_wine_claimable 9.37134670203274e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.059828652e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541621256e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.550205971743602e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.7541803961388154 WINERY_GRAPE_CLAIMABLE + + +2022-06-14 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.004147866640705378 WINE + assets:buckets:nodes_wine_claimable -0.004147819783971872 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299143232e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.334152692e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270810627999996e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029843105499e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 nodeContract.approve + assets:wallet:avax -0.010401525000000245 AVAX + assets:buckets:nodes_wine_claimable 4.6843262199e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.529914328799997e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.334152692e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270810629000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029877799969e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-grapenode.create[nodeTier 0][numNodes 1] + assets:wallet:avax -0.04883152500000021 AVAX + assets:wallet:grape -50 GRAPE + assets:buckets:nodes_grape 1 NODES_GRAPE + assets:buckets:nodes_grape_claimable 0.003611384311253435 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3686524398e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.059828651999999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541621256000006e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.550205971743602e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.023130000000000095 AVAX + assets:wallet:wine 4.0769228931702983e-7 WINE + assets:wallet:grape_mim_lp 8.642990623549553 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000015735879351865857 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3686524398e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -8.64299062354955 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -3.17094002792e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541621256999994e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.00000786793967593423 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6843262200000005e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8308021938e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270810627000014e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04417964999999979 AVAX + assets:wallet:mim 11.128965766721883 MIM + assets:wallet:grape 10.412138945761777 GRAPE + assets:wallet:grape_mim_lp -8.642990623549553 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000023603819027801388 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.40529786598e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1492406586e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.0024580759999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.1812431883999996e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.825308956054152e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.000007867939675932929 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6843262199000004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.830802198599999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919000006e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270810627000014e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029881269416e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.swapExactTokensForTokens[tokenInAmount 22971382641543801384][tokenIn mim][tokenOut grape] + assets:wallet:avax -0.030133124999999872 AVAX + assets:wallet:mim -22.971382641543798 MIM + assets:wallet:grape 21.426946404766348 GRAPE + assets:buckets:nodes_grape_claimable 0.000015735879351866724 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.368652439899998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.661604397099999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839000013e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541621256000006e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.010406925000000289 AVAX + assets:buckets:nodes_grape_claimable 0.000007867939675932929 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6843262199000004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8308021936999994e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270810628000016e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029877799969e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.020806199999999997 AVAX + assets:buckets:nodes_grape_claimable 0.00001573587935186629 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.368652439800006e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6616043923e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839999988e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.454162125499998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.550205971743602e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 grape][token2 wine][amount1 21556460831842272796][amount2 128789361883211023] + assets:wallet:avax -0.05579032500000025 AVAX + assets:wallet:grape -21.556460831842273 GRAPE + assets:wallet:wine -0.0872648683096513 WINE + assets:wallet:grape_wine_lp 1.2572148404654204 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023603819027800087 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.40529786597e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.14924065908e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.0024580759999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.1812431883999996e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.8253089598705436e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007867939675932929 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.684326219999998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.830802193700002e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.727081062799999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP grape-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 2.2680595762603062e-7 WINE + assets:wallet:grape_wine_lp -1.308692437145116 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000015735879351867158 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.368652439900004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6616043923e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked 1.3086924371451158 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -2.00122903798e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.454162125599998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.006577874999999622 AVAX + assets:buckets:nodes_grape_claimable 0.000007867939675932929 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.684326219899995e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8308021985e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.078773469e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270810628000043e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.01312964999999977 AVAX + assets:buckets:nodes_grape_claimable 0.000015735879351865857 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.368652439800001e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.661604392200002e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.157546938e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.454162125700001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.550205971743602e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 mim][token2 wine][amount1 33680088483243686426][amount2 128789361883211023] + assets:wallet:avax -0.04821682499999991 AVAX + assets:wallet:mim -33.680088483243686 MIM + assets:wallet:wine -0.1282920897744381 WINE + assets:wallet:mim_wine_lp 1.7362438308689112 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023603819027799653 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.4052978659699996e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1492406590700002e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.236320407e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.181243188400002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.825308956054152e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007867939675933362 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.684326219999998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.830802198600003e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0787734692e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.727081062799999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029877799969e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP mim-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 3.9722864444285966e-7 WINE + assets:wallet:mim_wine_lp -1.7594598268632748 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000015735879351867158 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.368652439900004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.661604392299994e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.157546938200002e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked 1.7594598268632746 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -3.62687023188e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.550205971743602e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 0.000007738220437682186 WINE + assets:buckets:nodes_grape_claimable 0.0014713047193995474 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000008759690031257 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -5.74620329492e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000005757306387184 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.00000759986376508 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000002384442583762414 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.000005942032795323848 WINE + assets:buckets:nodes_grape_claimable 0.000007867939675933362 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.684326219899995e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8308021937e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.000005911245060636 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.064098270200046e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.025600725000000324 AVAX + assets:wallet:wine 0.000009743398537438719 WINE + assets:buckets:nodes_grape_claimable 0.000007867939675933362 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable -0.000009696555275241 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8308021984999994e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.078773469e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.064098270199961e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029877799969e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.003956065832747269 WINE + assets:buckets:nodes_wine_claimable 0.0000021554097414657955 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.00395398207215732 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.137102383149944e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.944553894550198e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.865473735183757e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0014909425566572154 WINE + assets:buckets:nodes_wine_claimable 4.685673351059738e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299143232e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919905325e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.001490925285887883 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029881269416e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0011753060422201034 WINE + assets:buckets:nodes_wine_claimable 4.685673350973002e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299143288000007e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.0011752927006932 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769335e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 2.754180396138814 GRAPE + assets:buckets:nodes_wine_claimable 4.685673350973002e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299143231999985e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336999998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029877799969e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.7541803961388154 WINERY_GRAPE_CLAIMABLE + + +2022-06-14 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.004160611672220149 WINE + assets:buckets:nodes_wine_claimable -0.004160564815486625 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.529914328800002e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999999e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769335e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 nodeContract.approve + assets:wallet:avax -0.010401525000000245 AVAX + assets:buckets:nodes_wine_claimable 4.6832641339e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5299143232e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.334152692e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336999998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029881269416e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-grapenode.create[nodeTier 0][numNodes 1] + assets:wallet:avax -0.04883152500000021 AVAX + assets:wallet:grape -50 GRAPE + assets:buckets:nodes_grape 1 NODES_GRAPE + assets:buckets:nodes_grape_claimable 0.000739338591483165 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3665282679e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.059828651999997e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.023130000000000095 AVAX + assets:wallet:wine 3.623931461027574e-7 WINE + assets:wallet:grape_mim_lp 8.648222317335144 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000015730608329428972 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3665282679e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -8.648222317335147 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -2.7179485956e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.454153867199999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007865304164713944 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6832641340000006e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8303790107e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999994e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769337000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029881269416e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04417964999999979 AVAX + assets:wallet:mim 11.138623820020904 MIM + assets:wallet:grape 10.415716321867938 GRAPE + assets:wallet:grape_mim_lp -8.648222317335144 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000015730608329428972 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.366528267900001e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6607580261e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.000007865304164714052 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.683264133999998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8303790105999995e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029877799969e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.swapExactTokensForTokens[tokenInAmount 22973779011117535731][tokenIn mim][tokenOut grape] + assets:wallet:avax -0.030133124999999872 AVAX + assets:wallet:mim -22.973779011117536 MIM + assets:wallet:grape 21.417957147050164 GRAPE + assets:buckets:nodes_grape_claimable 0.000015730608329428972 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.366528268000001e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.660758026e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839999988e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.550205971743602e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.010406925000000289 AVAX + assets:buckets:nodes_grape_claimable 0.000007865304164714052 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6832641339000004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8303790154000016e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919000006e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029881269416e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.020806199999999997 AVAX + assets:buckets:nodes_grape_claimable 0.00001573060832942908 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.366528267899998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6607580261e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839000013e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 grape][token2 wine][amount1 21547417187048424125][amount2 128806096310689427] + assets:wallet:avax -0.05579032500000025 AVAX + assets:wallet:grape -21.54741718704842 GRAPE + assets:wallet:wine -0.08722825782529903 WINE + assets:wallet:grape_wine_lp 1.2566873974618857 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023595912494144 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.4049792401900002e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1491137041399999e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.002458075900002e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.181230800800001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.8253089602174883e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007865304164714052 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6832641339000004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.830379010700001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999981e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP grape-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 2.001229037762453e-7 WINE + assets:wallet:grape_wine_lp -1.3081652578630831 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00001573060832942908 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.366528267899993e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.660758026100003e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked 1.3081652578630831 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -1.73439849958e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.006577874999999622 AVAX + assets:buckets:nodes_grape_claimable 0.000007865304164713944 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6832641339000004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8303790154000016e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0780709985e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769334999974e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029839636052e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.01312964999999977 AVAX + assets:buckets:nodes_grape_claimable 0.000015730608329428972 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.366528267900004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.660758026e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.1561419973e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.550205971743602e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 mim][token2 wine][amount1 33688096991677163317][amount2 128806096310689427] + assets:wallet:avax -0.04821682499999991 AVAX + assets:wallet:mim -33.68809699167716 MIM + assets:wallet:wine -0.12830875388036975 WINE + assets:wallet:mim_wine_lp 1.7365628864063594 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023595912494142916 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.4049792401900007e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1491137041400001e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.234212996e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.181230800699998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.825308955707207e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007865304164715028 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6832641339000004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.830379010699996e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0780709988e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.727076933700003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2751029881269416e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP mim-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 3.626861560523942e-7 WINE + assets:wallet:mim_wine_lp -1.7597787228729542 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00001573060832942908 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.366528267899993e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.660758026099997e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.1561419976e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked 1.759778722872954 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -3.28144617382e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5502059720905468e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.003984467605662401 WINE + assets:buckets:nodes_wine_claimable 9.36489657634744e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.003983561666191184 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839788966e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.454153867190647e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547895689188062e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0015017713290308987 WINE + assets:buckets:nodes_wine_claimable 4.6824482881346885e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5296973512e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920122165e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.001501754058261543 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739478440909613e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0011836711795988886 WINE + assets:buckets:nodes_wine_claimable 4.6824482881346885e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5296973568000005e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.001183657838071981 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739478440909613e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 2.754180396138814 GRAPE + assets:buckets:nodes_wine_claimable 4.682448288221425e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5296973567999985e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739478440909613e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.7541803961388154 WINERY_GRAPE_CLAIMABLE + + +2022-06-14 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.004189974455556578 WINE + assets:buckets:nodes_wine_claimable -0.004189927631073692 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.529697356800001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999999e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739478437440166e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 nodeContract.approve + assets:wallet:avax -0.010401525000000245 AVAX + assets:buckets:nodes_wine_claimable 4.6808172353e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.529697356800001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.334152692e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769335999996e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739478482542976e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-grapenode.create[nodeTier 0][numNodes 1] + assets:wallet:avax -0.04883152500000021 AVAX + assets:wallet:grape -50 GRAPE + assets:buckets:nodes_grape 1 NODES_GRAPE + assets:buckets:nodes_grape_claimable 0.003153393313809619 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3616344707e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.059394713600002e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5478956919983142e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.023130000000000095 AVAX + assets:wallet:wine 3.6237578848741236e-7 WINE + assets:wallet:grape_mim_lp 8.585108588893492 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000015727647450421937 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3616344707e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -8.58510858889349 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -2.71781841352e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.454153867099999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5478956881819226e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007863823725211185 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6808172352999995e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8353004685e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999994e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769337000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739478440909613e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04417964999999979 AVAX + assets:wallet:mim 11.058687846433692 MIM + assets:wallet:grape 10.338442708477908 GRAPE + assets:wallet:grape_mim_lp -8.585108588893492 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000015727647450421937 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.361634470699999e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6706009417e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547895687834978e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.000007863823725211185 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6808172352999995e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8353004732e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769337000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739478440909613e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.swapExactTokensForTokens[tokenInAmount 22939942539938417809][tokenIn mim][tokenOut grape] + assets:wallet:avax -0.030133124999999872 AVAX + assets:wallet:mim -22.939942539938414 MIM + assets:wallet:grape 21.381189538497694 GRAPE + assets:buckets:nodes_grape_claimable 0.00001572764745042237 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.361634470700002e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.670600946400001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839999988e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5478956919983142e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.010406925000000289 AVAX + assets:buckets:nodes_grape_claimable 0.000007863823725210752 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6808172352999995e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8353004731999984e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919000006e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769337000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739478440909613e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.020806199999999997 AVAX + assets:buckets:nodes_grape_claimable 0.000015727647450421937 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.361634470699996e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.670600941699999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839000013e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5478956881819226e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 grape][token2 wine][amount1 21510426756914618807][amount2 128844575543691442] + assets:wallet:avax -0.05579032500000025 AVAX + assets:wallet:grape -21.51042675691462 GRAPE + assets:wallet:wine -0.08707851315990497 WINE + assets:wallet:grape_wine_lp 1.2545300434285778 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023591471175632688 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.4042451706e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.15059014149e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.002458075900002e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.181230800899998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.821843532272884e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007863823725211185 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.680817235399997e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.835300473200001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999981e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769335000027e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739478437440166e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP grape-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 2.0012290380400088e-7 WINE + assets:wallet:grape_wine_lp -1.3060089825067918 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00001572764745042237 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.361634470700002e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.670600946399997e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked 1.3060089825067918 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -1.73439849958e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547895687834978e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.006577874999999622 AVAX + assets:buckets:nodes_grape_claimable 0.000007863823725210752 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.680817235399997e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.835300473200001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0751977429e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769335000027e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739478440909613e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.01312964999999977 AVAX + assets:buckets:nodes_grape_claimable 0.000015727647450421937 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.361634470699991e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.670600946400002e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.1503954861e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5478956919983142e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 mim][token2 wine][amount1 33656877903954658393][amount2 128844575543691442] + assets:wallet:avax -0.04821682499999991 AVAX + assets:wallet:mim -33.65687790395466 MIM + assets:wallet:wine -0.12834715260076163 WINE + assets:wallet:mim_wine_lp 1.7360163938792017 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023591471175632688 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.40424517061e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1505901414900003e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.2255932293e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.181230800700003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.8218435360892755e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007863823725211185 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.680817235299994e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.835300473200001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0751977432000004e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739478440909613e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP mim-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 3.626861560523942e-7 WINE + assets:wallet:mim_wine_lp -1.7592325035920602 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000015727647450421937 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.361634470700002e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.670600946399997e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.1503954864e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked 1.7592325035920602 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -3.28144617383e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547895687834978e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.01906830000000026 AVAX + assets:wallet:grape 2.754180396138814 GRAPE + assets:buckets:nodes_wine_claimable 0.0000014037911521347715 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000001358830867576044 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.002458075969429e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.181230800790308e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.8218167040110496e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.7541803961388154 WINERY_GRAPE_CLAIMABLE + + +2022-06-14 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.01906830000000026 AVAX + assets:wallet:grape 2.754180396138814 GRAPE + assets:buckets:nodes_wine_claimable 9.358607680901368e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.058872450324815e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305383981065e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.454153867190647e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5478778023849125e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.7541803961388154 WINERY_GRAPE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.019632149999999626 AVAX + assets:wallet:wine 0.004018847447872453 WINE + assets:buckets:nodes_wine_claimable 0.000001356998113730655 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.004017533911367032 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.8690428067790494e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.008523107439666e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.694422813609044e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.00151487984295684 WINE + assets:buckets:nodes_wine_claimable 4.679303840411653e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5294362232e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920122165e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.001514862572187552 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739389040200555e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.001193797398531149 WINE + assets:buckets:nodes_wine_claimable 4.679303840498389e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5294362232e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.00119378405700419 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739388998567192e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.004225448618590533 WINE + assets:buckets:nodes_wine_claimable -0.004225401825552147 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5294362288e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739389002036638e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 nodeContract.approve + assets:wallet:avax -0.010401525000000245 AVAX + assets:buckets:nodes_wine_claimable 4.677861055e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.529436223199999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999999e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769335e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739389040200555e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-grapenode.create[nodeTier 0][numNodes 1] + assets:wallet:avax -0.04883152500000021 AVAX + assets:wallet:grape -50 GRAPE + assets:buckets:nodes_grape 1 NODES_GRAPE + assets:buckets:nodes_grape_claimable 0.000644425133638911 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3557221101e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.058872446400001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5478778038767746e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.023130000000000095 AVAX + assets:wallet:wine 3.1706053571500803e-7 WINE + assets:wallet:grape_mim_lp 8.575638789866137 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000015717686186313986 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3557221102e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -8.57563878986614 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -2.26471811216e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547877800060383e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007858843093158023 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6778610551e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8358452847e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769334999988e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739389040200555e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04243117499999993 AVAX + assets:wallet:mim 11.044680660640722 MIM + assets:wallet:grape 10.328735944187313 GRAPE + assets:wallet:grape_mim_lp -8.575638789866137 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.00001571768618631496 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.355722110199998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6716905695e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.454153867199999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5478778038767746e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.000007858843093158023 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6778610551e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8358452896000005e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769335e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739389002036638e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.swapExactTokensForTokens[tokenInAmount 22935150705157852258][tokenIn mim][tokenOut grape] + assets:wallet:avax -0.030133124999999872 AVAX + assets:wallet:mim -22.935150705157852 MIM + assets:wallet:grape 21.38373786437057 GRAPE + assets:buckets:nodes_grape_claimable 0.00001571768618631496 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3557221102e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6716905743e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053840000015e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5478778038767746e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.010406924999999845 AVAX + assets:buckets:nodes_grape_claimable 0.000007858843093158023 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6778610551e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8358452896000005e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999981e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769335e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739389002036638e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.020806199999999997 AVAX + assets:buckets:nodes_grape_claimable 0.00001571768618631507 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3557221102e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6716905743e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053838999986e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547877800060383e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 grape][token2 wine][amount1 21512990446019450985][amount2 128891119912742547] + assets:wallet:avax -0.05579032499999981 AVAX + assets:wallet:grape -21.51299044601945 GRAPE + assets:wallet:wine -0.08708889148656376 WINE + assets:wallet:grape_wine_lp 1.2546795627775134 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023576529279473093 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.4033583165300006e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.15075358591e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.0024580758999994e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.1812308007000006e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.8218167040804385e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.01038735000000024 AVAX + assets:buckets:nodes_grape_claimable 0.000007858843093156939 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.677861055099995e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.835845289500003e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336999978e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739389002036638e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP grape-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 1.8678137689298602e-7 WINE + assets:wallet:grape_wine_lp -1.306158427096053 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00001571768618631496 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3557221102e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6716905743e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked 1.3061584270960531 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -1.60098323038e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547877800060383e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.000007858843093157047 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.677861055099995e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.835845289500003e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0753968794e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739389040200555e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.013129650000000215 AVAX + assets:buckets:nodes_grape_claimable 0.000015717686186313986 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3557221102e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6716905743e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.1507937589e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4541538672000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5478778038767746e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 mim][token2 wine][amount1 33648570587050883773][amount2 128891119912742547] + assets:wallet:avax -0.04821682499999991 AVAX + assets:wallet:mim -33.648570587050884 MIM + assets:wallet:wine -0.1283935510339166 WINE + assets:wallet:mim_wine_lp 1.7361151988389079 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00002357652927947201 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.4033583165299995e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1507535859100003e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.2261906384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.181230800800001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.8218167040804385e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.01038735000000024 AVAX + assets:buckets:nodes_grape_claimable 0.000007858843093156939 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6778610551000054e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.835845289500003e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0753968795999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7270769336000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2739389040200555e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP mim-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 3.454153867168963e-7 WINE + assets:wallet:mim_wine_lp -1.7593312591492865 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00001571768618631496 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3557221102e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.671690574299995e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.1507937591e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked 1.7593312591492862 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -3.10873848047e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5478778038767746e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.004028132792134376 WINE + assets:buckets:nodes_wine_claimable 0.00000112269975527466 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.004027045727440288 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.201966460770773e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.144114861129918e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.057266600402231e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0015184197237047004 WINE + assets:buckets:nodes_wine_claimable 4.677915646945224e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5294362232e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919905325e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.001518402456559448 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0011965324115496556 WINE + assets:buckets:nodes_wine_claimable 4.677915646945224e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5294362232e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.00119651907002277 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7267145254e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 2.754180396138814 GRAPE + assets:buckets:nodes_wine_claimable 9.355831294063921e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.058872452e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4534290509999997e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547722167955957e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.7541803961388154 WINERY_GRAPE_CLAIMABLE + + +2022-06-14 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.0042351317096327445 WINE + assets:buckets:nodes_wine_claimable -0.00423508493047624 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.529436223200002e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.334152692e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7267145254000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 nodeContract.approve + assets:wallet:avax -0.010401525000000245 AVAX + assets:buckets:nodes_wine_claimable 4.6770541308e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.529436228799999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.334152692e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7267145254999998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610843249232e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-grapenode.create[nodeTier 0][numNodes 1] + assets:wallet:avax -0.04883152500000021 AVAX + assets:wallet:grape -50 GRAPE + assets:buckets:nodes_grape 1 NODES_GRAPE + assets:buckets:nodes_grape_claimable 0.001280896487347817 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3541082616e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.058872451999998e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4534290509999997e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5477221683029017e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.023130000000000095 AVAX + assets:wallet:wine 3.6235489803138066e-7 WINE + assets:wallet:grape_mim_lp 8.567550580480178 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000007858260658575146 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6770541309000006e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -8.56755058048018 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -3.17060535736e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.726714525400001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007858260658575797 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.677054130799999e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8364994584e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999994e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7267145254999998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610798146421e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04420417499999996 AVAX + assets:wallet:mim 11.034053585610963 MIM + assets:wallet:grape 10.31919146745385 GRAPE + assets:wallet:grape_mim_lp -8.567550580480178 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000023574781975726957 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.40311623925e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.15094983754e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.002458076000001e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.180143576399999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.821583247770599e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006577874999999622 AVAX + assets:buckets:nodes_grape_claimable 0.000007858260658576014 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.677054130899999e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.836499463300001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999981e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7267145254999998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.swapExactTokensForTokens[tokenInAmount 22930869389055441587][tokenIn mim][tokenOut grape] + assets:wallet:avax -0.030133124999999872 AVAX + assets:wallet:mim -22.930869389055438 MIM + assets:wallet:grape 21.38056197545449 GRAPE + assets:buckets:nodes_grape_claimable 0.000015716521317150943 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.354108261700001e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6729989217e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053838999986e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4534290509999997e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547722167955957e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.010406924999999845 AVAX + assets:buckets:nodes_grape_claimable 0.000007858260658576014 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.677054130899999e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8364994585000014e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7267145254999998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610843249232e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.020806199999999997 AVAX + assets:buckets:nodes_grape_claimable 0.000015716521317150943 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.354108261699996e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.672998921800001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053840000015e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4534290508999995e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5477221683029017e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 grape][token2 wine][amount1 21509795301007081036][amount2 128903741577277797] + assets:wallet:avax -0.05579032499999981 AVAX + assets:wallet:grape -21.50979530100708 GRAPE + assets:wallet:wine -0.08707595689999553 WINE + assets:wallet:grape_wine_lp 1.2544932156884283 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023574781975726957 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.40311623926e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.15094983802e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.0024580759999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.180143576400002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.82158325228088e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.01038735000000024 AVAX + assets:buckets:nodes_grape_claimable 0.000007858260658576014 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.677054130800002e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8364994585000014e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7267145254999972e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP grape-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 2.1346443071501575e-7 WINE + assets:wallet:grape_wine_lp -1.3059721731805123 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000015716521317150943 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.354108261699996e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.672998921800001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked 1.3059721731805123 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -1.86781376878e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.453429050899997e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5477221637926206e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.000007858260658576014 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.677054130800002e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8364994585000014e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0751486943e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7267145255000025e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.013129650000000215 AVAX + assets:buckets:nodes_grape_claimable 0.00001571652131715116 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.354108261600004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6729989169e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.1502973886e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4534290509999997e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547722167955957e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 mim][token2 wine][amount1 33643880505652390411][amount2 128903741577277797] + assets:wallet:avax -0.04821682499999991 AVAX + assets:wallet:mim -33.64388050565239 MIM + assets:wallet:wine -0.12840615998804125 WINE + assets:wallet:mim_wine_lp 1.7360787449382005 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023574781975727174 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.4031162392499998e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.15094983802e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.2254460831e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.180143576399999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.8215832519339354e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.01038735000000024 AVAX + assets:buckets:nodes_grape_claimable 0.00000785826065857493 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.677054130800002e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8364994585000014e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.075148694299999e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7267145255000025e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP mim-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 3.798771956026181e-7 WINE + assets:wallet:mim_wine_lp -1.7592948234755295 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000015716521317150943 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.354108261700006e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.6729989169e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.1502973886e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked 1.7592948234755295 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -3.45342905093e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5477221683029017e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.004043984268172318 WINE + assets:buckets:nodes_wine_claimable 9.351660660347066e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.004043078595289832 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839788966e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.453164840090412e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5477221671926786e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0015244628216222744 WINE + assets:buckets:nodes_wine_claimable 4.675830330216901e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5283644112e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920122165e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.001524445555798091 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0012012019459716194 WINE + assets:buckets:nodes_wine_claimable 4.675830330216901e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5283644112e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.001201188604444737 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265824201e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 3.477276990064169 GRAPE + assets:buckets:nodes_wine_claimable 4.675830330130165e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5283644112000006e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265824199999997e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610843249232e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -3.4772769900641753 WINERY_GRAPE_CLAIMABLE + + +2022-06-14 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.004251453858287513 WINE + assets:buckets:nodes_wine_claimable -0.004251407099984193 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.528364411199999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999999e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265824200000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 nodeContract.approve + assets:wallet:avax -0.010401525000000245 AVAX + assets:buckets:nodes_wine_claimable 4.6756939517e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5283644168000015e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.334152692e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265824200000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-grapenode.create[nodeTier 0][numNodes 1] + assets:wallet:avax -0.04883152500000021 AVAX + assets:wallet:grape -50 GRAPE + assets:buckets:nodes_grape 1 NODES_GRAPE + assets:buckets:nodes_grape_claimable 0.001351404293735285 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3513879035e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.056728828000001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4531648401e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547722167955957e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.023130000000000095 AVAX + assets:wallet:wine 3.169855088414053e-7 WINE + assets:wallet:grape_mim_lp 10.123672723616915 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.00000785700170776284 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6756939518e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -10.123672723616913 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -2.71701864728e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999994e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265824200000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007857001707764141 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6756939518e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7097622666e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265824200000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.042382124999999604 AVAX + assets:wallet:mim 13.03504557084549 MIM + assets:wallet:grape 12.196423108232537 GRAPE + assets:wallet:grape_mim_lp -10.123672723616915 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.00001571400341552698 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3513879036e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.4195245333e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.453164840100001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5477221637926206e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.000007857001707763057 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6756939518000024e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7097622665999994e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265824199999978e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.swapExactTokensForTokens[tokenInAmount 23375066244332046494][tokenIn mim][tokenOut grape] + assets:wallet:avax -0.030133125000000316 AVAX + assets:wallet:mim -23.375066244332046 MIM + assets:wallet:grape 21.80522909702498 GRAPE + assets:buckets:nodes_grape_claimable 0.000015714003415526114 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3513879036e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.4195245378e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053840000015e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.453164839999998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547722167955957e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.010406924999999845 AVAX + assets:buckets:nodes_grape_claimable 0.000007857001707763924 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6756939518000024e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7097622665999994e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999981e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265824202000008e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610843249232e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.020806199999999997 AVAX + assets:buckets:nodes_grape_claimable 0.00001571400341552698 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3513879036e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.419524533199999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053838999986e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.453164840200001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5477221683029017e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 grape][token2 wine][amount1 21937036272057500952][amount2 128925184705793922] + assets:wallet:avax -0.05579032499999981 AVAX + assets:wallet:grape -21.937036272057505 GRAPE + assets:wallet:wine -0.08703446991747907 WINE + assets:wallet:grape_wine_lp 1.2665098041396106 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00002357100512329004 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.4027081855400002e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1129286804499999e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.0024580758999994e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.1797472602000016e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.82158325228088e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.01038735000000024 AVAX + assets:buckets:nodes_grape_claimable 0.000007857001707763924 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6756939518000024e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.709762266600002e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265824201000006e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP grape-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 1.8678137689298602e-7 WINE + assets:wallet:grape_wine_lp -1.317982753337469 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00001571400341552698 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.351387903500002e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.419524533199999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked 1.317982753337469 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -1.60098323038e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4531648400999983e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547722167955957e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.000007857001707763057 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6756939518000024e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7097622712e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.091152843e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.726582420000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610839779785e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.01312964999999977 AVAX + assets:buckets:nodes_grape_claimable 0.00001571400341552698 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.351387903599994e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.419524537800002e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.1823056861e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4531648400999983e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5477221637926206e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 mim][token2 wine][amount1 34853411994361671589][amount2 128925184705793922] + assets:wallet:avax -0.04821682499999991 AVAX + assets:wallet:mim -34.85341199436167 MIM + assets:wallet:wine -0.12842556710814923 WINE + assets:wallet:mim_wine_lp 1.7670948649642275 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00002357100512329004 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.4027081855399997e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1129286804500002e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.2734585292e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.1797472601000014e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.821583247770599e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.01038735000000024 AVAX + assets:buckets:nodes_grape_claimable 0.00000785700170776284 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6756939518000024e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7097622712e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.091152843000001e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265824199999978e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738610843249232e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP mim-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 3.4531648400448756e-7 WINE + assets:wallet:mim_wine_lp -1.7902954354415435 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000015714003415525897 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.351387903600005e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.419524537799997e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.182305686299998e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked 1.7902954354415435 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -3.10784835607e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5477221683029017e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.004071603949586777 WINE + assets:buckets:nodes_wine_claimable 8.881109144287871e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.004070743687412472 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.5348901147798433e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.280411544389749e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.420221067583883e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0015349947640154182 WINE + assets:buckets:nodes_wine_claimable 4.674267970600221e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5276956536e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919905325e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.00153497749869154 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738005639861827e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0012093402773928341 WINE + assets:buckets:nodes_wine_claimable 4.674267970686957e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5276956536e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.00120932693586588 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265323917e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.273800560169791e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 3.477276990064169 GRAPE + assets:buckets:nodes_wine_claimable 9.34853594146065e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.0553913072e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.453064783500001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547601123809029e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -3.4772769900641753 WINERY_GRAPE_CLAIMABLE + + +2022-06-14 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.0042800175881949065 WINE + assets:buckets:nodes_wine_claimable -0.004279970845515228 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5276956536e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.334152692e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265323919e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738005639861827e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 nodeContract.approve + assets:wallet:avax -0.010401525000000245 AVAX + assets:buckets:nodes_wine_claimable 4.6733136409e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5276956536e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.334152692e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265323916999996e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.273800560169791e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-grapenode.create[nodeTier 0][numNodes 1] + assets:wallet:avax -0.04883152500000021 AVAX + assets:wallet:grape -50 GRAPE + assets:buckets:nodes_grape 1 NODES_GRAPE + assets:buckets:nodes_grape_claimable 0.000243488396523443 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3466272819e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.055391307199998e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053839999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4530647834999994e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5476011241559737e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.023130000000000095 AVAX + assets:wallet:wine 4.0749260882266825e-7 WINE + assets:wallet:grape_mim_lp 9.232494648220538 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000015708928807964018 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3466272819e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -9.232494648220538 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -3.16938695752e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.668305384e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.453064783600001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5476011241559737e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000007854464403981968 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.673313640999999e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.781265204e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265323916999983e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738005598228463e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04420417499999996 AVAX + assets:wallet:mim 11.892908170891737 MIM + assets:wallet:grape 11.117886173851897 GRAPE + assets:wallet:grape_mim_lp -9.232494648220538 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.00001570892880796399 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3466272819e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.5625304127e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053840000015e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4530647834999994e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5476011199926374e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006577874999999622 AVAX + assets:buckets:nodes_grape_claimable 0.000007854464403981968 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.673313640999999e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7812652088000004e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526919999981e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.726532391800001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738005639861827e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.swapExactTokensForTokens[tokenInAmount 22899538695063743177][tokenIn mim][tokenOut grape] + assets:wallet:avax -0.030133124999999872 AVAX + assets:wallet:mim -22.899538695063747 MIM + assets:wallet:grape 21.34267834036514 GRAPE + assets:buckets:nodes_grape_claimable 0.00001570892880796399 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.346627281999998e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.5625304175e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053838999986e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4530647835999996e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547601123809029e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.010406924999999845 AVAX + assets:buckets:nodes_grape_claimable 0.000007854464403982023 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.673313640900001e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7812652087e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.726532391700001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738005639861827e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.020806199999999997 AVAX + assets:buckets:nodes_grape_claimable 0.00001570892880796399 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.3466272819e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.5625304127e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6683053840000015e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.453064783600002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5476011241559737e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 grape][token2 wine][amount1 21471681986686032673][amount2 128962611548362027] + assets:wallet:avax -0.05579032499999981 AVAX + assets:wallet:grape -21.47168198668603 GRAPE + assets:wallet:wine -0.0851382641606942 WINE + assets:wallet:grape_wine_lp 1.2392793254111827 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023563393211946013 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.40199409229e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1343795621399997e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.0024580759999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.179597175300003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.8214016881421564e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.01038735000000024 AVAX + assets:buckets:nodes_grape_claimable 0.000007854464403981968 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6733136409000065e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7812652087e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3341526920000007e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265323917999985e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738005598228463e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP grape-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 2.1346443071501575e-7 WINE + assets:wallet:grape_wine_lp -1.2907658898484053 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000015708928807964967 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.346627281900005e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.562530417500003e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked 1.2907658898484056 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -1.86781376878e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.4530647834999994e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.547601123809029e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.000007854464403982023 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.673313640999999e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7812652087e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0548860694e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.726532391899996e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.273800560169791e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.013129650000000215 AVAX + assets:buckets:nodes_grape_claimable 0.000015708928807964045 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.346627281899995e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.5625304127e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.1097721389e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.453064783599997e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5476011241559737e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 mim][token2 wine][amount1 34388084835956938434][amount2 128962611548362027] + assets:wallet:avax -0.04821682499999991 AVAX + assets:wallet:mim -34.38808483595694 MIM + assets:wallet:wine -0.12846453158187077 WINE + assets:wallet:mim_wine_lp 1.7554865175659922 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000023563393211946013 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.4019940922899993e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.13437956214e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.1646582087e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.179597175299998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.82140168397882e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010384650000000217 AVAX + assets:buckets:nodes_grape_claimable 0.000007854464403982023 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.6733136410000094e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.781265208699995e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.054886069500001e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.7265323919000013e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.2738005639861827e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP mim-wine-lp] + assets:wallet:avax -0.033755175000000026 AVAX + assets:wallet:wine 3.798371261964917e-7 WINE + assets:wallet:mim_wine_lp -1.778692892217007 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00001570892880796399 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.346627281900005e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.5625304174e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.109772139200001e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked 1.778692892217007 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -3.45306478354e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5476011241559737e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.004079617970894567 WINE + assets:buckets:nodes_wine_claimable 4.6742679706782836e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.004079165201329232 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.0673221535902576e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.381225913431143e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.0190293639814052e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0015382406449120367 WINE + assets:buckets:nodes_wine_claimable 4.206841173609588e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.07492348816e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.2007374227893108e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.00153808525699674 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1464080348216887e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.0012119552166690584 WINE + assets:buckets:nodes_wine_claimable 5.609121564807001e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.43322438456e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.0012117951183460629 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.07183887012e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.5285440467874278e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.02354579999999995 AVAX + assets:wallet:grape 3.477276990064169 GRAPE + assets:buckets:nodes_wine_claimable 5.141694767738306e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.980455686079999e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.46756796119e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.89918563096e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4011653756001996e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -3.4772769900641753 WINERY_GRAPE_CLAIMABLE + + +2022-06-14 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.004290067264331898 WINE + assets:buckets:nodes_wine_claimable -0.004289553148609197 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.97994162512e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.4675679611900003e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.8991856309499996e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4011653759818388e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 nodeContract.approve + assets:wallet:avax -0.0104015249999998 AVAX + assets:buckets:nodes_wine_claimable 2.3362380839799997e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.432538970879998e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.0673221535999995e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.0718388701399997e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.0190293640160997e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-grapenode.create[nodeTier 0][numNodes 1] + assets:wallet:avax -0.04991152500000018 AVAX + assets:wallet:grape -50 GRAPE + assets:buckets:nodes_grape 1 NODES_GRAPE + assets:buckets:nodes_grape_claimable 0.001885113220452138 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 7.475905798999999e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.054231617759998e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.1346443071899998e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.45306478356e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.0380587284138385e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.02312999999999965 AVAX + assets:wallet:wine 0.0000035313624469068827 WINE + assets:wallet:grape_mim_lp 9.21437451421642 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.00004712783051130285 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.1396466889e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -9.214374514216424 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.000003274632899354 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 8.004916151899996e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.0359194350599996e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 7.642720232028943e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.removeLiquidity + assets:wallet:avax -0.01038735000000024 AVAX + assets:buckets:nodes_grape_claimable 0.000094255661022607 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.2706842565699976e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.5386949070700006e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.6009832303900006e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.0718388701399997e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.5285440464057887e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04856962500000028 AVAX + assets:wallet:mim 11.868161279179972 MIM + assets:wallet:grape 11.097384288906404 GRAPE + assets:wallet:grape_mim_lp -9.21437451421642 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000149238129952461 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 7.475849729299998e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.186266936150001e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.53489011478e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.2804115443799996e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.420194740414272e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.00006283710734840539 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.737924864650001e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0257966043999993e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.7343984995900004e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.3812259134299995e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.655922716795044e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.swapExactTokensForTokens[tokenInAmount 22890073184626103853][tokenIn mim][tokenOut grape] + assets:wallet:avax -0.030763125000000002 AVAX + assets:wallet:mim -22.890073184626104 MIM + assets:wallet:grape 21.338918160151298 GRAPE + assets:buckets:nodes_grape_claimable 0.00012567421469681034 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 7.475849729300002e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.05159320927e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.8017206531799996e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.76245182685e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.0570880928115773e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.010406924999999845 AVAX + assets:buckets:nodes_grape_claimable 0.00008640102260405605 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8034436484899985e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.160470331749999e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.4675679611900008e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.89918563095e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 7.64272023619228e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.020806199999999997 AVAX + assets:buckets:nodes_grape_claimable 0.00017280204520811167 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 7.008609121219999e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.320940663039998e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.9351359223800016e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.7983712619199987e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.1654373992194276e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 grape][token2 wine][amount1 21467898925508219321][amount2 128974573807170839] + assets:wallet:avax -0.05750032499999991 AVAX + assets:wallet:grape -21.46789892550822 GRAPE + assets:wallet:wine -0.08512326378661586 WINE + assets:wallet:grape_wine_lp 1.2390609787764226 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00021992987571941604 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000010746533985870004 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.00000105902881168 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.7356275375800004e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.834290696979998e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.929709422422322e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.00010211029944115664 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 6.074127905059992e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.91691948239e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.7343984995800012e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.2444921093100009e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.6559227171766833e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP grape-wine-lp] + assets:wallet:avax -0.03484057500000004 AVAX + assets:wallet:wine 0.0000019478629303126826 WINE + assets:wallet:grape_wine_lp -1.2905476523869628 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000149238129952461 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 8.877571553539995e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.186266935689998e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked 1.2905476523869628 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.000001694373918828 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.2804115443799996e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.4201947403795776e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.006577875000000066 AVAX + assets:buckets:nodes_grape_claimable 0.00003927319209275299 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.139646688900002e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0257966048699967e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.27643336823e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.4171453484900033e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.7833013876006332e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity + assets:wallet:avax -0.01312964999999977 AVAX + assets:buckets:nodes_grape_claimable 0.00012567421469680904 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000001027929337779 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.05159320927e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.72010957868e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.7983712619099994e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.802330751998372e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 traderjoe.addLiquidity[token1 mim][token2 wine][amount1 34375894210303201248][amount2 128974573807170839] + assets:wallet:avax -0.04992682500000001 AVAX + assets:wallet:mim -34.3758942103032 MIM + assets:wallet:wine -0.12865099556182183 WINE + assets:wallet:mim_wine_lp 1.7564466856345404 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000188511322045214 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000014017218242439997 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.077389814139997e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.1637857891e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.179597175340003e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 4.076117457209316e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.00005498246892985401 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.270684256570002e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.647572029079998e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.36005478935e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.89918563095e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 8.91597710002412e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-14 grapefinance-vineyard.deposit[LP mim-wine-lp] + assets:wallet:avax -0.03484057500000004 AVAX + assets:wallet:wine 0.000003504860755308703 WINE + assets:wallet:mim_wine_lp -1.779652580201521 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00011781957627825896 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 7.00860912121999e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.673368633950003e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.80373099977e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked 1.7796525802015213 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.000003153188756136 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9105423007884093e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-15 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.0028383298994536996 WINE + assets:buckets:nodes_grape_claimable 0.0013464871101771525 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000007637080583911514 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.002831758260772046 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000005176345251950692 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000007126159283550853 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000002079317217518195 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-15 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.01963484999999965 AVAX + assets:wallet:wine 0.0030765588194658286 WINE + assets:buckets:nodes_grape_claimable 0.00000765049494422243 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.339250331795996e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7338856136e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.9411052568199814e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.003076518329924441 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.181430240096426e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-15 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.002232561178309826 WINE + assets:buckets:nodes_grape_claimable 0.00000765049494422243 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.33925033170926e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7338856136e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.002232531767257261 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.0489541381e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1814302359330897e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-15 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 2.1894836132342235 GRAPE + assets:buckets:nodes_grape_claimable 0.000015300989888333838 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 8.678500663591993e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.4677712272e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.8822105134e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 8.0979082769e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.3628604718661794e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.189483613234223 WINERY_GRAPE_CLAIMABLE + + +2022-06-15 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.025600725000000324 AVAX + assets:wallet:wine 0.004401981351926737 WINE + assets:buckets:nodes_grape_claimable 0.00000765049494422243 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable -0.004401937959423414 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7338856182000005e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.9411052568e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.0489541383999994e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.181430240096426e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-15 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 2.1894836132342235 GRAPE + assets:buckets:nodes_grape_claimable 0.0006420290482496149 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000003639123335374625 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000031236074883281457 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000002470528415704932 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000003401121476241057 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.90522020200696e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.189483613234223 WINERY_GRAPE_CLAIMABLE + + +2022-06-15 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.02354579999999995 AVAX + assets:wallet:grape 2.1894836132342235 GRAPE + assets:buckets:nodes_grape_claimable 0.00006113634389526279 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.197417643400953e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.718580343261939e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.7646631540789784e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.2391633107177464e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4150314575980816e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.189483613234223 WINERY_GRAPE_CLAIMABLE + + +2022-06-16 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 2.939230096740097 GRAPE + assets:buckets:nodes_grape_claimable 0.00016257989948065266 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 8.791431920836951e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.260743601150658e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.375628749909212e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 8.756519072417382e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.559647431996104e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.9392300967400966 WINERY_GRAPE_CLAIMABLE + + +2022-06-16 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.029448224999999884 AVAX + assets:wallet:grape 1.2859512213758357 GRAPE + assets:buckets:nodes_grape_claimable -1.2859438313804046 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.996105418443974e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7548834513900786e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.8980130681484362e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.980235941964533e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1634761040019148e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-16 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 2.939230096740097 GRAPE + assets:buckets:nodes_grape_claimable 0.00017735989034250998 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.5881034892914e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.011720292374098e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.955231363547573e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 9.552566260818962e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.792342652796487e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.9392300967400966 WINERY_GRAPE_CLAIMABLE + + +2022-06-16 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.029448224999999884 AVAX + assets:wallet:grape 1.2867197809006505 GRAPE + assets:buckets:nodes_grape_claimable -1.286712390905222 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.9950431206248194e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.754883451476815e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.8980130679749638e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.980235941964533e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1634761078183065e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-16 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.02354579999999995 AVAX + assets:wallet:grape 2.939230096740097 GRAPE + assets:buckets:nodes_grape_claimable 0.00008866888626046787 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.7940517446457e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.003594462895262e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.318410454518749e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.184188753623668e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1634761052162212e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.9392300967400966 WINERY_GRAPE_CLAIMABLE + + +2022-06-16 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.029448224999999884 AVAX + assets:wallet:grape 1.287562213654077 GRAPE + assets:buckets:nodes_grape_claimable -1.2874809338416733 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.1960344964304666e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.129942386436533e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.0572182953904634e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.572330318793714e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.6288665475802655e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-17 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.010229853384944983 WINE + assets:buckets:nodes_grape_claimable 0.00017842539855938977 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 8.619613112697405e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.615677503740621e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.428755025943839e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.010228948269788965 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.9464953424027107e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-17 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 2.983181978614276 GRAPE + assets:buckets:nodes_grape_claimable 0.000015515252048681205 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 7.495315750179199e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.491893484062873e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.590221761626185e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.8705665739e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.5621698641203894e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.983181978614276 WINERY_GRAPE_CLAIMABLE + + +2022-06-17 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.025600725000000324 AVAX + assets:wallet:wine 0.012003438458604736 WINE + assets:buckets:nodes_grape_claimable 0.000007757626024340603 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable -0.01200340098202599 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7459467371742106e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.7951108808564606e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.9352832871000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.281084927723386e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-17 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.010233631256900536 WINE + assets:buckets:nodes_grape_claimable 0.00006982128291121992 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.372892087589313e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.3713520668568475e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.074621968933433e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.010233355787070441 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.4091934244161997e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-17 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.02354579999999995 AVAX + assets:wallet:grape 2.983181978614276 GRAPE + assets:buckets:nodes_grape_claimable 0.00007757920323481216 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.7476578750895995e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.7459467405742686e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.236088704676495e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.1482266296e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.0248679451971276e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.983181978614276 WINERY_GRAPE_CLAIMABLE + + +2022-06-17 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.012007785741739843 WINE + assets:buckets:nodes_grape_claimable 0.00004654752194088729 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable -0.01200756088226734 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.120541414777412e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.074621968933433e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.3288116157599995e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 7.686509587850887e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-19 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.016742170427116537 WINE + assets:buckets:nodes_grape_claimable 0.010452925713781758 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.00004741020499117107 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.016680713477113255 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.0000231968165980128 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.00006264418343251196 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000013575247669397189 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-19 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.011694153048660047 WINE + assets:buckets:nodes_grape_claimable 0.000007503894984717263 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.403460516193668e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.411841347e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.011694136396243242 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.49706988019799e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.745332121141592e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-19 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 2.270597490911751 GRAPE + assets:buckets:nodes_grape_claimable 0.000015007789969656571 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 6.806921032474073e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.8236826986e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.3304833593e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 8.994139760569453e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.94906642804471e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.270597490911753 WINERY_GRAPE_CLAIMABLE + + +2022-06-19 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.025600725000000324 AVAX + assets:wallet:grape 1.9608765989035462 GRAPE + assets:buckets:nodes_grape_claimable -1.9608690950085552 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.403460516193668e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.411841351599999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.6652416796999998e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.497069880544935e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.745332159305509e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-19 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.01674710254762471 WINE + assets:buckets:nodes_grape_claimable 0.00009002352148712589 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.0812517459846986e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.01674657335994785 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.9982900156291505e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.394662738016087e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1689701987990797e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-19 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.011696267905593236 WINE + assets:buckets:nodes_grape_claimable 0.00006751341124533461 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.0609388095015344e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.9689075763100005e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.011696118033842066 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.045997053503392e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 8.767276488130804e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-19 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.02354579999999995 AVAX + assets:wallet:grape 2.270597490911751 GRAPE + assets:buckets:nodes_grape_claimable 0.00006751253754222475 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.741147433823644e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.9689075763099994e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.49871751172e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.0459970535120654e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 8.767276488130804e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -2.270597490911753 WINERY_GRAPE_CLAIMABLE + + +2022-06-19 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:grape 1.962022349761888 GRAPE + assets:buckets:nodes_grape_claimable -1.9619623386174019 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.720834497331806e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.5279166564299984e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.3321933437400003e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5964418253469493e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 7.793134656000622e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-21 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.015451511169934443 WINE + assets:buckets:nodes_grape_claimable 0.0002136289323273477 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.011420878026616e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000012403607319291451 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 8.058135858978605e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.015450182579277197 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.98059207003154e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-21 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.01906830000000026 AVAX + assets:wallet:grape 4.099377213383235 GRAPE + assets:buckets:nodes_grape_claimable 0.00001424192882182318 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 6.007613918487809e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.269071549629053e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.372090572733357e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 8.857271048e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.987061379674082e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -4.099377213383239 WINERY_GRAPE_CLAIMABLE + + +2022-06-21 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.011837512937720729 WINE + assets:buckets:nodes_grape_claimable 0.000007120964411022612 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable -0.011837482899651135 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.134535772342546e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6860452863666784e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.428635524100002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.935306920921816e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-21 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:grape 1.3255860829326451 GRAPE + assets:buckets:nodes_grape_claimable -1.3255789619682348 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.0035966928e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.134535772516018e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6860452862799422e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.428635524199998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.935306879288452e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-21 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.015456825532563404 WINE + assets:buckets:nodes_grape_claimable 0.00007119117148968179 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.6040396811896913e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.961442927903931e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6860452863146367e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.01545638266901099 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.93510244004514e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-21 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.02354579999999995 AVAX + assets:wallet:grape 4.099377213383235 GRAPE + assets:buckets:nodes_grape_claimable 0.0000783102886388054 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.3037030410833224e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.788350082398461e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.760463400887329e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 6.2000897338e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.3909143416201974e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -4.099377213383239 WINERY_GRAPE_CLAIMABLE + + +2022-06-21 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.025600725000000324 AVAX + assets:wallet:wine 0.01184189825797985 WINE + assets:buckets:nodes_grape_claimable 0.00007119117148968179 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable -0.011841597925394298 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.1345357729410254e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6860452863146367e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.428635524129999e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.93510244004514e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-21 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:grape 1.326732456603395 GRAPE + assets:buckets:nodes_grape_claimable -1.3266612654319057 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.0032312495e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.1345357729410254e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6860452863406575e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.42863552414e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.93510244004514e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.0040230530852346374 WINE + assets:wallet:mim_wine_lp 0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.005701685329210893 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000023107326667637894 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.00003331360855782922 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000021453923490810135 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.5300000000000002 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.003987518337019556 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.0000077714429467593 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381949999999751 AVAX + assets:buckets:nodes_grape_claimable 0.000006970275463591413 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8248565607773973e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.072568281741906e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290331713726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5966252461e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.500541520157668e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 9.340844559899157 MIM + assets:wallet:wine 0.043853887033704964 WINE + assets:wallet:mim_wine_lp -0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000013940550927182827 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.649713121598163e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.145136563483812e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.245458066256009e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1932504925e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9001082998681973e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.004047353066465628 WINE + assets:wallet:mim_wine_lp 0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.0036855104397693905 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000014962064670223912 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000021544946170275886 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000013874236585133086 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.5300000000000002 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.004024361656999705 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000005025517395479406 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381949999999751 AVAX + assets:buckets:nodes_grape_claimable 0.0000069669384493709074 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8283676125999413e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.072768650630054e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290330846365e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5983647303e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.50003287841783e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 9.34591593893524 MIM + assets:wallet:wine 0.04383023953240198 WINE + assets:wallet:mim_wine_lp -0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000020900815348334767 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 8.485102837582983e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.2218305956226971e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 7.868187099427382e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.0795094191e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.8500098638722937e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.02312460000000005 AVAX + assets:wallet:wine 0.011426290625411034 WINE + assets:wallet:grape_mim_lp 11.19 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.00000696693844948193 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.828367612513205e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -11.189999999999998 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.011426249897724537 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290330846365e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.598364730600001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.500032881887277e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381949999999751 AVAX + assets:buckets:nodes_grape_claimable 0.00000696693844948193 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.828367612513205e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0986948012e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290330846365e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.598364730199999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.50003287841783e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.044168849999999704 AVAX + assets:wallet:mim 14.158305237091216 MIM + assets:wallet:grape 13.793013740454832 GRAPE + assets:wallet:grape_mim_lp -11.19 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.00002090081534844579 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 8.485102837582983e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.2960844038e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 7.868187099167173e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.0795094191000001e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.85000986803563e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 3-vineyard] + assets:wallet:avax -0.023180175000000247 AVAX + assets:wallet:grape 10.000000000000007 GRAPE + assets:wallet:wine 0.02688303340201409 WINE + assets:buckets:nodes_grape_claimable 0.00484202222238117 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000019657154907005373 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000021535928873941 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000018227966780091746 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000025008634876236 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked -10 VINEYARD_GRAPE_STAKED + assets:buckets:vineyard_grape_staked_wine_claimable -0.02687643087915992 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-winery.withdraw[amount 500000000000000000] + assets:wallet:avax -0.03255412499999988 AVAX + assets:wallet:grape 3.004887368740313 GRAPE + assets:wallet:wine 0.49999999999999994 WINE + assets:buckets:nodes_grape_claimable 0.0029121802718782286 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000011822576620327749 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000012952544272398002 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000010963007358384853 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000015041164573047996 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.00000297831684075 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -3.0048873687403206 WINERY_GRAPE_CLAIMABLE + assets:buckets:winery_wine_staked -0.5 WINERY_WINE_STAKED + + +2022-06-22 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.004215932629178812 WINE + assets:wallet:mim_wine_lp 0.5399999999999999 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.0004170754617489614 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000016911303838810544 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000024431077627583286 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000001573637419862925 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.54 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.004213336303444585 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.697736403624531e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006951257695786417 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8185506398010346e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.071846271963553e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290330846365e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5685905279e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.496227360017429e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 9.449809957608098 MIM + assets:wallet:wine 0.045000931830167956 WINE + assets:wallet:mim_wine_lp -0.5399999999999999 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000013902515391572834 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.637101279602069e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.143692543753633e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.245458066169273e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1371810562e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8992454678401494e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.02312460000000005 AVAX + assets:wallet:wine 0.01158466386856466 WINE + assets:wallet:grape_mim_lp 11.459999999999999 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000006951257695786417 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8185506398010346e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -11.459999999999994 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.011584623150101956 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290331713726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5685905279999994e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.496227360017429e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006951257695897439 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8185506398010346e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0744949439e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290331713726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.568590528200001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.496227318384065e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04237132499999996 AVAX + assets:wallet:mim 14.483322461290829 MIM + assets:wallet:grape 14.14213989603708 GRAPE + assets:wallet:grape_mim_lp -11.459999999999999 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000013902515391683856 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.637101279602069e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.1489898913e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.2454580659958006e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1371810562e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8992454678401494e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.0042436267703439695 WINE + assets:wallet:mim_wine_lp 0.5399999999999999 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.0003127025680761397 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000012675435002522904 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000018321308292868627 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.00000118022806489676 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.54 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.004241679526043284 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 4.273302302397475e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006948945957208075 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.816763333864103e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.0714018411866504e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290332581088e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.568590528e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.496227360017429e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 9.44389359288324 MIM + assets:wallet:wine 0.04502919448870932 WINE + assets:wallet:mim_wine_lp -0.5399999999999999 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000013897891914527172 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.633526667771574e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.142803686883582e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.245458066342745e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1371810563e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8992454678401494e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.02312460000000005 AVAX + assets:wallet:wine 0.011610723803237494 WINE + assets:wallet:grape_mim_lp 11.49 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000006948945957208075 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.816763333820735e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -11.489999999999995 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.011610683089219073 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290330846365e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.568590528000001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.496227360017429e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006948945957208075 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.816763333907471e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0715487586e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290331713726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.568590528200001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.496227321853512e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04237132499999996 AVAX + assets:wallet:mim 14.521337263370395 MIM + assets:wallet:grape 14.17907867468233 GRAPE + assets:wallet:grape_mim_lp -11.49 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000013897891914527172 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.633526667771574e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.1430975172e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.245458066256009e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1371810562e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.899245468187094e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-winery.withdraw[amount 580000000000000000] + assets:wallet:avax -0.03255412499999988 AVAX + assets:wallet:grape 3.00488736874032 GRAPE + assets:wallet:wine 0.58 WINE + assets:buckets:nodes_grape_claimable 0.000006948945957208075 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.816763333907471e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.071548762100001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290331713726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5685905282e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.496227318384065e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -3.0048873687403206 WINERY_GRAPE_CLAIMABLE + assets:buckets:winery_wine_staked -0.5800000000000001 WINERY_WINE_STAKED + + +2022-06-22 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.004293344075873409 WINE + assets:wallet:mim_wine_lp 0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00016671356690900474 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 6.753744326726957e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.769820592409745e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.294549679455169e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.5300000000000002 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.00429230575601109 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.2780668551894423e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006946398621199279 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.814060136129004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.0707585809152125e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290330846365e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.581913587e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.49194524021979e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 9.294386209857217 MIM + assets:wallet:wine 0.04407505648009202 WINE + assets:wallet:mim_wine_lp -0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000013892797242398558 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.628120272301376e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.141517161830425e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.245458066256009e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.163827174e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8983890442275664e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.02312460000000005 AVAX + assets:wallet:wine 0.011657498697424579 WINE + assets:wallet:grape_mim_lp 11.459999999999999 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000006946398621199279 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.814060136129004e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -11.459999999999994 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.01165745798983882 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290331713726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5819135873e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.491945236750343e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006946398621310301 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.814060136172372e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0736736619e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290330846365e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.581913587100001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.49194524021979e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04416885000000015 AVAX + assets:wallet:mim 14.490156243064952 MIM + assets:wallet:grape 14.13552358636786 GRAPE + assets:wallet:grape_mim_lp -11.459999999999999 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.00002083919586370886 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 8.442180408387012e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.2210209894e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 7.868187099080437e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.07457407614e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.847583572065937e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-winery.withdraw[amount 580000000000000000] + assets:wallet:avax -0.03255412499999988 AVAX + assets:wallet:grape 3.00488736874032 GRAPE + assets:wallet:wine 0.58 WINE + assets:buckets:nodes_grape_claimable 0.000006946398621199279 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8140601362157402e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.073673665499999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290331713726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5819135870000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.491945202055874e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -3.0048873687403206 WINERY_GRAPE_CLAIMABLE + assets:buckets:winery_wine_staked -0.5800000000000001 WINERY_WINE_STAKED + + +2022-06-22 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010404224999999823 AVAX + assets:buckets:nodes_grape_claimable 0.000006946398621199279 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.814060136085636e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.073673661899999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290331713726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.581913587300001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.49194524021979e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.004339838186225145 WINE + assets:wallet:mim_wine_lp 0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.0001527263721169403 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 6.187032624729687e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.954615399615201e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.770003872829568e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.5300000000000002 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.004338886775356424 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.0879907448173585e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.0000069421078234821465 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.812287556693341e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.070279725418291e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290330846365e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5804746681e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490866998557168e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 9.305452881676834 MIM + assets:wallet:wine 0.0440228554775135 WINE + assets:wallet:mim_wine_lp -0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000013884215646964293 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.624575113386682e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.140559455520335e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.245458066256009e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1609493363e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.89817340387477e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.02312460000000005 AVAX + assets:wallet:wine 0.011701256450603076 WINE + assets:wallet:grape_mim_lp 11.299999999999999 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.0000069421078234821465 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.812287556736709e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -11.299999999999997 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.011701215747805816 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290331713726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5804746682e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490867040190532e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006942107823593169 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.812287556693341e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0872315219e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.622729032911164e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5804746681e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490866998557168e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04237132499999996 AVAX + assets:wallet:mim 14.279262706662482 MIM + assets:wallet:grape 13.946576649845518 GRAPE + assets:wallet:grape_mim_lp -11.299999999999999 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000020826323470557462 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 8.436862669993286e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.2616945656e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 7.868187099167173e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.07414240047e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.8472601040774315e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-winery.withdraw[amount 580000000000000000] + assets:wallet:avax -0.03255412499999988 AVAX + assets:wallet:grape 3.0048873687403272 GRAPE + assets:wallet:wine 0.5800000000000001 WINE + assets:buckets:nodes_grape_claimable 0.0000069421078234821465 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.812287556693341e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0872315219e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290330846365e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5804746681999986e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490867040190532e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -3.0048873687403206 WINERY_GRAPE_CLAIMABLE + assets:buckets:winery_wine_staked -0.5800000000000001 WINERY_WINE_STAKED + + +2022-06-22 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010406925000000289 AVAX + assets:buckets:nodes_grape_claimable 0.0000069421078234821465 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.812287556693341e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.087231521899999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290331713726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.580474668100004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490866998557168e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.005455125000000116 AVAX + assets:buckets:nodes_grape_claimable 0.005678644199620164 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.00002300451221376584 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000025253553853304003 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000021453923490811003 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.00002928828278603 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000007763529223801108 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.004392252275901995 WINE + assets:wallet:mim_wine_lp 0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00030528025383569357 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000012358418154841122 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000001790956633732077 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.0000011540007745650463 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.5300000000000002 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.004390349454164554 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 4.175776070411419e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006938187587124389 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.808731398894551e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.070355985770491e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290332581088e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5804746682e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490400160183654e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 9.319901574118086 MIM + assets:wallet:wine 0.04395487750664681 WINE + assets:wallet:mim_wine_lp -0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.0000138763751743598 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.617462797702366e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.140711971887926e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.245458066342745e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1609493363e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980800278733945e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.02312460000000005 AVAX + assets:wallet:wine 0.011750589692931496 WINE + assets:wallet:grape_mim_lp 11.23 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000006938187587124389 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.808731398764447e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -11.229999999999997 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.011750548989371641 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290331713726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5804746682e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490400160183654e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.0000069381875872354115 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.808731398807815e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0933792254e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290330846365e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5804746681e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490400160183654e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04237132499999996 AVAX + assets:wallet:mim 14.189972878976814 MIM + assets:wallet:grape 13.861003974602163 GRAPE + assets:wallet:grape_mim_lp -11.23 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.00002081456276148419 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 8.426194196510181e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.2801376761e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 7.868187099427382e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.07414240047e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.8471200480550962e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-winery.withdraw[amount 580000000000000000] + assets:wallet:avax -0.03255412499999988 AVAX + assets:wallet:grape 3.00488736874032 GRAPE + assets:wallet:wine 0.58 WINE + assets:buckets:nodes_grape_claimable 0.0000069381875872354115 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.808731398807815e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0933792253e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.622729032911164e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5804746681999986e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490400160183654e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -3.0048873687403206 WINERY_GRAPE_CLAIMABLE + assets:buckets:winery_wine_staked -0.5800000000000001 WINERY_WINE_STAKED + + +2022-06-22 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010409625000000311 AVAX + assets:buckets:nodes_grape_claimable 0.000006938187587124389 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.808731398894551e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0933792253e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290330846365e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.580474668100004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490400160183654e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.swapExactTokensForTokens[tokenInAmount 14424376888119275000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.03396667500000028 AVAX + assets:wallet:mim 14.722245642549005 MIM + assets:wallet:grape -14.424376888119276 GRAPE + assets:buckets:nodes_grape_claimable 0.0000138763751743598 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.617462797702366e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.1867584507e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.245458066169273e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1609493365e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980800320367308e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.0065544749999997265 AVAX + assets:buckets:nodes_grape_claimable 0.000006938187587124389 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.808731398807815e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0933792253000024e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6227290331713726e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.580474668200001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490400160183654e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.swapExactTokensForTokens[tokenInAmount 649315307983928200][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.030112874999999928 AVAX + assets:wallet:mim 137.19116931580515 MIM + assets:wallet:wine -0.6493153079839281 WINE + assets:buckets:nodes_grape_claimable 0.0000138763751743598 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.61746279761563e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.1867584507e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.245458066342745e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.160949336400003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980800320367308e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.004470326736803157 WINE + assets:wallet:mim_wine_lp 0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00015942425971104957 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 6.449234980850267e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.349323929555564e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.031582553819512e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.5300000000000002 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.004469332461424193 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.182801360772757e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006931489552663983 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8040152090860748e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.06492344506848e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271972713487e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.579101551e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440683324053e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 9.332034833374053 MIM + assets:wallet:wine 0.043906294718174615 WINE + assets:wallet:mim_wine_lp -0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000013862979105327966 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.6080304181721496e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.129846894647241e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.2448543946294335e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.158203102e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980881401342575e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.02312460000000005 AVAX + assets:wallet:wine 0.011824026287373418 WINE + assets:wallet:grape_mim_lp 11.18 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000006931489552663983 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8040152089993386e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -11.18 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.011823985638138955 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.622427197444821e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5791015512000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440679854606e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006931489552663983 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.804015209129443e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.093594667e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271970978763e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.579101551e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.49044072148797e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04237132499999996 AVAX + assets:wallet:mim 14.117277000420847 MIM + assets:wallet:grape 13.808696492158852 GRAPE + assets:wallet:grape_mim_lp -11.18 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000013862979105327966 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.608030418215518e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.1871893341e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.244854394455961e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1582031022e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980881401342575e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-winery.withdraw[amount 580000000000000000] + assets:wallet:avax -0.03255412499999988 AVAX + assets:wallet:grape 3.00488736874032 GRAPE + assets:wallet:wine 0.5800000000000001 WINE + assets:buckets:nodes_grape_claimable 0.000006931489552663983 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8040152089993386e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0935946671e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271973580848e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.579101551e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440718018522e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -3.0048873687403206 WINERY_GRAPE_CLAIMABLE + assets:buckets:winery_wine_staked -0.5800000000000001 WINERY_WINE_STAKED + + +2022-06-22 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010409625000000311 AVAX + assets:buckets:nodes_grape_claimable 0.000006931489552663983 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8040152090860748e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0935946671e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271973580848e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.579101551199998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440679854606e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.swapExactTokensForTokens[tokenInAmount 14369942858213234000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.03396667500000028 AVAX + assets:wallet:mim 14.646823332143235 MIM + assets:wallet:grape -14.369942858213228 GRAPE + assets:buckets:nodes_grape_claimable 0.000013862979105327966 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.608030418215518e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.187189334199999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.2448543947161697e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1582031022e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980881401342575e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.0065544749999997265 AVAX + assets:buckets:nodes_grape_claimable 0.000006931489552552961 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8040152089993386e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.093594667000001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271971846125e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.579101551199998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440679854606e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.swapExactTokensForTokens[tokenInAmount 649264316405863800][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.030112874999999928 AVAX + assets:wallet:mim 137.5109292892236 MIM + assets:wallet:wine -0.6492643164058638 WINE + assets:buckets:nodes_grape_claimable 0.000013862979105216944 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.6080304180854135e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.1871893341e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.244854394455961e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1582031022e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980881401342575e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.004474476755776183 WINE + assets:wallet:mim_wine_lp 0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00014556128060583262 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.88796086447782e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.536263625177204e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.507097114373916e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.5300000000000002 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.004473568939125831 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9929925467940257e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006931489552663983 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8037908877866918e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 4.064887443311349e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271972713487e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.579101551e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440679854606e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 9.332013011169828 MIM + assets:wallet:wine 0.04390639764710447 WINE + assets:wallet:mim_wine_lp -0.53 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00002079446865799195 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 8.41137266349018e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.2194662320913485e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 7.86728159172731e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.07373046532e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.847132208119718e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.02312460000000005 AVAX + assets:wallet:wine 0.011827969220989332 WINE + assets:wallet:grape_mim_lp 11.19 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000006931489552663983 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.803790887916796e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -11.189999999999998 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.011827928572114881 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.622427197444821e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.579101551e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.49044072148797e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006931489552552961 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8037908877866918e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0926984511e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271973580848e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5791015512000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440679854606e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04416885000000015 AVAX + assets:wallet:mim 14.123425569194373 MIM + assets:wallet:grape 13.827403619835842 GRAPE + assets:wallet:grape_mim_lp -11.19 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000013862979105216944 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.607581775703488e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.1853969023e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.2448543947161697e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1582031022e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980881397873128e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-winery.withdraw[amount 580000000000000000] + assets:wallet:avax -0.03255412499999988 AVAX + assets:wallet:grape 3.00488736874032 GRAPE + assets:wallet:wine 0.5800000000000001 WINE + assets:buckets:nodes_grape_claimable 0.000006931489552663983 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8037908877866918e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0926984548e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271973580848e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.579101551199998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440679854606e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -3.0048873687403206 WINERY_GRAPE_CLAIMABLE + assets:buckets:winery_wine_staked -0.5800000000000001 WINERY_WINE_STAKED + + +2022-06-22 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010409624999999867 AVAX + assets:buckets:nodes_grape_claimable 0.000006931489552663983 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.803790887916796e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.092698451199999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271970978763e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.579101551000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.49044072148797e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.swapExactTokensForTokens[tokenInAmount 14389411234589357000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.033966674999999835 AVAX + assets:wallet:mim 14.653203310884038 MIM + assets:wallet:grape -14.38941123458936 GRAPE + assets:buckets:nodes_grape_claimable 0.000013862979105327966 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.607581775703488e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.185396905899999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.244854394542697e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1582031022e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980881401342575e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006554475000000171 AVAX + assets:buckets:nodes_grape_claimable 0.000006931489552663983 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.803790887916796e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0926984512000015e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271972713487e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.579101551000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440679854606e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.swapExactTokensForTokens[tokenInAmount 649264316405863800][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.030112875000000372 AVAX + assets:wallet:mim 137.51028553761626 MIM + assets:wallet:wine -0.6492643164058638 WINE + assets:buckets:nodes_grape_claimable 0.000013862979105327966 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.607581775703488e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.185396906000001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.2448543947161697e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1582031022e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980881397873128e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.0044883533817172555 WINE + assets:wallet:mim_wine_lp 0.5399999999999999 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00013861596487685368 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.606544406081861e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.130855064999998e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.244854394612086e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.54 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.004487488794431218 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.898088139579146e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.00001386159648764096 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.606544406120892e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.130855064063247e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.244854394802906e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.1301328148e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980881401342575e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 9.497760336469774 MIM + assets:wallet:wine 0.044783589354553066 WINE + assets:wallet:mim_wine_lp -0.5399999999999999 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00002079239473151695 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 8.409816609116286e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.2196282596181607e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 7.867281592074254e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.06951992223e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.847132208119718e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.02312460000000005 AVAX + assets:wallet:wine 0.011841015285136397 WINE + assets:wallet:grape_mim_lp 11.24 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000006930798243875991 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.80327220308213e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -11.239999999999995 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.01184097463086107 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.622427197444821e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5650664074999994e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440718018522e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006930798243875991 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8032722029953938e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.088764742e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271970978763e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.565066407600001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440679854606e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04237132499999996 AVAX + assets:wallet:mim 14.18295159987275 MIM + assets:wallet:grape 13.892704920505317 GRAPE + assets:wallet:grape_mim_lp -11.24 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.00001386159648764096 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.6065444059907876e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.177529484e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.244854394455961e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.130132815099999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980881401342575e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 grapefinance-winery.withdraw[amount 580000000000000000] + assets:wallet:avax -0.03255412499999988 AVAX + assets:wallet:grape 3.00488736874032 GRAPE + assets:wallet:wine 0.58 WINE + assets:buckets:nodes_grape_claimable 0.000006930798243875991 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.803272203125498e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.088764742e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271972713487e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5650664075000034e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440679854606e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -3.0048873687403206 WINERY_GRAPE_CLAIMABLE + assets:buckets:winery_wine_staked -0.5800000000000001 WINERY_WINE_STAKED + + +2022-06-22 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010409625000000311 AVAX + assets:buckets:nodes_grape_claimable 0.000006930798243875991 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8032722029953938e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0887647418999996e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.622427197444821e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5650664074999955e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.49044072148797e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.swapExactTokensForTokens[tokenInAmount 14457366357838081000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.03396667500000028 AVAX + assets:wallet:mim 14.714961121032609 MIM + assets:wallet:grape -14.457366357838083 GRAPE + assets:buckets:nodes_grape_claimable 0.000013861596487751981 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.606544406077524e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.177529487499999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.244854394802906e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.130132815099999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980881401342575e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.0065544749999997265 AVAX + assets:buckets:nodes_grape_claimable 0.0000069307982437649684 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.8032722029953938e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.088764742000001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6224271970978763e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.565066407500001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.490440718018522e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-22 traderjoe.swapExactTokensForTokens[tokenInAmount 650178002233223000][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.030112874999999928 AVAX + assets:wallet:mim 137.4043957785421 MIM + assets:wallet:wine -0.650178002233223 WINE + assets:buckets:nodes_grape_claimable 0.00001386159648764096 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.6065444059907876e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.177529484000002e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.244854394542697e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.130132814999996e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8980881397873128e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010409625000000311 AVAX + assets:buckets:nodes_grape_claimable 0.044427564203596726 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0001737223384739228 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.00025559292260605646 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.00016424175345567185 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.0002817345912647599 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.00006235035309576017 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 traderjoe.swapExactTokensForTokens[tokenInAmount 37088568208520170000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.0339693750000003 AVAX + assets:wallet:mim 38.776268960452086 MIM + assets:wallet:grape -37.088568208520165 GRAPE + assets:buckets:nodes_grape_claimable 0.044434361566541014 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.00017374891777907457 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0002556320280104017 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.00016426688224291906 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.00028177769631238404 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.00006235989262348002 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010409625000000311 AVAX + assets:buckets:nodes_grape_claimable 0.00014940186823242385 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.837296023917041e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.5590943539951e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.552932126756671e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 9.469833567830876e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.1020592444118136e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 traderjoe.swapExactTokensForTokens[tokenInAmount 37088568208520170000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.0339693750000003 AVAX + assets:wallet:mim 38.4431304098785 MIM + assets:wallet:grape -37.088568208520165 GRAPE + assets:buckets:nodes_grape_claimable 0.00015619286224288764 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 6.10262766136821e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.948144097041533e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.805338132523069e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 9.900280548182094e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.1976073916185612e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.02312460000000005 AVAX + assets:wallet:wine 0.009092648477529705 WINE + assets:wallet:grape_wine_lp 0.02 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.0003191767184962391 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000012470586960187588 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000018285337937597873 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -0.020000000000000018 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.009091462169302632 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.0000020231008076689386 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 4.490762930790815e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010379249999999729 AVAX + assets:buckets:nodes_grape_claimable 0.000006790994010463791 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.6533163745116883e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8904974349746047e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.5020352378e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.304469803512179e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.554814720674765e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04373662499999975 AVAX + assets:wallet:grape 0.3361477508013482 GRAPE + assets:wallet:wine 0.001435226003020651 WINE + assets:wallet:grape_wine_lp -0.02 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000013581988021149627 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.306632749023377e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.7809948656124e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.0040704755e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 8.608939607024357e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9109629479513446e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.007740598375242297 WINE + assets:wallet:mim_wine_lp 0.98 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000006790994010463791 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.6533163745116883e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8904974349746047e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.502035238e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.9800000000000004 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.007740555330544265 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.554814720674765e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006790994010685836 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.6533163745116883e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.890497435148077e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.5020352377999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.9349089841e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.554814758838681e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 18.53931068611719 MIM + assets:wallet:wine 0.07566251481282782 WINE + assets:wallet:mim_wine_lp -0.98 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000013581988021149627 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.3066327489366405e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.7809948656124e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.004070475800001e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.8698179682e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9109629517677362e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.02312460000000005 AVAX + assets:wallet:wine 0.014848432155900704 WINE + assets:wallet:grape_mim_lp 15.549999999999999 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000006790994010685836 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.6533163745116883e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -15.549999999999997 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.014848393250926338 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.5020352377999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.9349089840999994e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.554814720674765e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006790994010463791 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.6533163745116883e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.5974629951e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.502035238e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.9349089844000012e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.554814762308128e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04416885000000015 AVAX + assets:wallet:mim 19.804931910759343 MIM + assets:wallet:grape 19.050323342256476 GRAPE + assets:wallet:grape_mim_lp -15.549999999999999 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000013581988020927582 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.306632749023377e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.1949259932e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.0040704757999993e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.8698179685000006e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.910962952114681e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 grapefinance-winery.withdraw[amount 680000000000000000] + assets:wallet:avax -0.03255412499999988 AVAX + assets:wallet:grape 6.024213705127991 GRAPE + assets:wallet:wine 0.68 WINE + assets:buckets:nodes_grape_claimable 0.000013581988021149627 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.306632749023377e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.1949259964e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.0040704757999993e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.869817968399999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9109629479513446e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -6.024213705127989 WINERY_GRAPE_CLAIMABLE + assets:buckets:winery_wine_staked -0.6799999999999999 WINERY_WINE_STAKED + + +2022-06-23 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006562124999999863 AVAX + assets:buckets:nodes_grape_claimable 0.000006790994010685836 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.6533163745116883e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.5974629981999995e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.5020352377999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.934908984100002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.554814758838681e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 traderjoe.swapExactTokensForTokens[tokenInAmount 20174423456958426000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.030121874999999854 AVAX + assets:wallet:mim 20.910311620602066 MIM + assets:wallet:grape -20.17442345695843 GRAPE + assets:buckets:nodes_grape_claimable 0.000013581988021149627 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.306632749110113e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.194925996399999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.0040704757999993e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.8698179682000014e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9109629479513446e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006554475000000171 AVAX + assets:buckets:nodes_grape_claimable 0.000006790994010685836 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.653316374424952e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.597462998200002e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.502035237700002e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.934908984299997e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.554814762308128e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-23 traderjoe.swapExactTokensForTokens[tokenInAmount 787869832029579400][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.030112874999999928 AVAX + assets:wallet:mim 192.33820523486975 MIM + assets:wallet:wine -0.7878698320295794 WINE + assets:buckets:nodes_grape_claimable 0.000013581988021149627 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.3066327489366405e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.1949259963000014e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.004070475700002e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.869817968399999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.910962952114681e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.017766518780237148 WINE + assets:wallet:grape_wine_lp 1.4100000000000001 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.0003285001882269434 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000011554601574200601 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000018188312812215945 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -1.4100000000000001 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.017765091819376504 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000002189933544803624 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.330225242017317e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005972730695358308 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.1008366497821118e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.3069659670370566e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.977927097e-9 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.981697354119018e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.691318639953872e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04374202500000024 AVAX + assets:wallet:grape 23.43799762117264 GRAPE + assets:wallet:wine 0.10272092655603185 WINE + assets:wallet:grape_wine_lp -1.4100000000000001 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000011945461390272527 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.201673299737696e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.613931929216887e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.9955854194e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.963394708584981e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.938263723827438e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381949999999751 AVAX + assets:buckets:nodes_grape_claimable 0.000662973107148801 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000023319286813379414 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000036707322221135597 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000001107549907783 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000004419684063155377 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.0000010757363670399478 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.01777081800172052 WINE + assets:wallet:grape_wine_lp 0.7100000000000001 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00020314147797240167 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 7.109788375259107e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000011207811021936298 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -0.71 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.0177699359362538 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.0000013536238655242894 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.288606424400875e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005974749352155584 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.091114227956159e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.296415008666176e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.7905212969e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.981246663245508e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.672371840963034e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04374202500000024 AVAX + assets:wallet:grape 11.844005870878213 GRAPE + assets:wallet:wine 0.05154222168547554 WINE + assets:wallet:grape_wine_lp -0.7100000000000001 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000011949498704311168 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.18222845608579e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592830012128181e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.5810425939e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.96249332683796e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.934474368192607e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.02312729999999963 AVAX + assets:wallet:wine 0.000011065421615247262 WINE + assets:wallet:grape_wine_lp 0.7100000000000001 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.0036804456009074116 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000012881263644588109 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000020305916440314237 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -0.7100000000000001 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -3.5810425939e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.00002452447944596703 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.0000059581810510009325 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005974749352155584 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.091114227956159e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.296415008666176e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.864016491e-9 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.981246663245508e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.672371837493587e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04194450000000005 AVAX + assets:wallet:grape 11.844005870878213 GRAPE + assets:wallet:wine 0.05154222168547554 WINE + assets:wallet:grape_wine_lp -0.7100000000000001 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000011949498704311168 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.18222845608579e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592830012128181e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.9728032983e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.962493326491016e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.934474363682326e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010406925000000289 AVAX + assets:buckets:nodes_grape_claimable 0.000005974749352155584 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.091114227956159e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.296415008666176e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.864016491000002e-9 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.9812466635924526e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.672371840963034e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 12343317895509136000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.03396397500000026 AVAX + assets:wallet:mim 12.67442856312871 MIM + assets:wallet:grape -12.343317895509145 GRAPE + assets:buckets:nodes_grape_claimable 0.000011949498704311168 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.18222845608579e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592830012128181e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.9728032983e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.96249332683796e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.934474368192607e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.0000010455857480939912 WINE + assets:wallet:grape_wine_lp 0.7100000000000001 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.0006094244339167609 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000002132936512577732 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000033623433066815034 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -0.71 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -3.9456065966e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000004060871596572868 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.865819272786291e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381949999999751 AVAX + assets:buckets:nodes_grape_claimable 0.000005974749352155584 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.091114227956159e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.296415008319231e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.819510486e-9 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.981246663245508e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.672371840963034e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04194449999999961 AVAX + assets:wallet:grape 11.844005870878213 GRAPE + assets:wallet:wine 0.05154222168547554 WINE + assets:wallet:grape_wine_lp -0.7100000000000001 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000011949498703867079 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.182228455912318e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592830011781237e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.639020972e-9 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.962493326491016e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.934474368192607e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006559425000000285 AVAX + assets:buckets:nodes_grape_claimable 0.000005974749352155584 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0911142281296313e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.296415008666176e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.8195104860000002e-9 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.981246663245508e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.672371837493587e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 12343317895509136000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.030116475000000253 AVAX + assets:wallet:mim 12.674223786551822 MIM + assets:wallet:grape -12.343317895509138 GRAPE + assets:buckets:nodes_grape_claimable 0.000011949498704311168 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.18222845608579e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592830016985407e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.639020973e-9 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.962493326491016e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9344743678456622e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.01779240266255351 WINE + assets:wallet:grape_wine_lp 0.7100000000000001 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.0001254065630376111 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.3913398788467117e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.925008615987771e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -0.71 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.0177918578574123 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 8.360059632547823e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.0310372204207505e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005971741096733041 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.091114227956159e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.297623148851292e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.7905212969e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.9809807769741745e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.671605839117747e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04374202500000024 AVAX + assets:wallet:grape 11.843780950529485 GRAPE + assets:wallet:wine 0.051543202956294665 WINE + assets:wallet:grape_wine_lp -0.7100000000000001 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000017915223290643212 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 6.273342684041949e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.892869451411102e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.3715638908e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.1942942331963358e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.9014817437555962e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010406924999999845 AVAX + assets:buckets:nodes_grape_claimable 0.00000597174109717713 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.091114227956159e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.297623148851292e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.7905212969999998e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.980980777321119e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.671605839117747e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 12343083410105592000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.03396397499999981 AVAX + assets:wallet:mim 12.65969732899403 MIM + assets:wallet:grape -12.343083410105592 GRAPE + assets:buckets:nodes_grape_claimable 0.00001194348219435426 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.182228455912318e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.59524630255981e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.581042594e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.961961554642238e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9343211640071578e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.02169911725086436 WINE + assets:wallet:mim_wine_lp 0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00011940633408169532 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.1734459508765975e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.591222814038289e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.188620392539145e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.7000000000000002 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.021698321124370954 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9321292088134157e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005970316704129175 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0867229754903405e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.29561140911816e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.594310196529781e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.075978089e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.660646040077214e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 13.05205703194573 MIM + assets:wallet:wine 0.055117243871508126 WINE + assets:wallet:mim_wine_lp -0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000017910950111943436 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 6.260168926297549e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.886834222497254e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 7.782930588895454e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 9.227934267e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.8981938120231643e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.0000036911737068823225 WINE + assets:wallet:mim_wine_lp 0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.0006985270543768962 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000024414658812647178 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000003855865346239634 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000003035342929638002 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.7 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -9.227934267e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.0000011302955872406761 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005970316704129175 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0867229754903405e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.295611404607879e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.5943101961828363e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.1712431912e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.660646040077214e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.042060150000000185 AVAX + assets:wallet:mim 13.052057031945731 MIM + assets:wallet:wine 0.0551172438715081 WINE + assets:wallet:mim_wine_lp -0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00001194063340825835 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.173445950980681e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.591222813726039e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.188620392712617e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.3424863824e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9321292118318345e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.02312729999999963 AVAX + assets:wallet:wine 0.017843795947541652 WINE + assets:wallet:grape_wine_lp 0.77 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00025672361827489 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 8.97290879438295e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000014171129050326303 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -0.77 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.017842680394157276 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 9.33634572254e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 4.154077799210787e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005970316704129175 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0867229754903405e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.29561140911816e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.722580321e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.1712431911999982e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.660646040077214e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04374202500000024 AVAX + assets:wallet:grape 12.852247049130561 GRAPE + assets:wallet:wine 0.055866067001074216 WINE + assets:wallet:grape_wine_lp -0.77 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000017910950112387525 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 6.260168926297549e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.886834222497254e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.167740963e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 6.513729573900014e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.8981938120231643e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.017846571859451696 WINE + assets:wallet:grape_wine_lp 0.77 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00013729725268740722 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.799462843506352e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.578742259560511e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -0.77 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.017845975168106543 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 9.155454674183994e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.2219485903973712e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005969445768805315 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0867229754903405e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2951053288710064e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.722580321e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.9806324670516036e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.660646040077214e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04374202500000024 AVAX + assets:wallet:grape 12.852247049130561 GRAPE + assets:wallet:wine 0.05586606700107419 WINE + assets:wallet:grape_wine_lp -0.77 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000011938891538054719 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.173445950980681e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.590210662599238e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.445160642e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.961264934103207e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.932129208015443e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010409624999999867 AVAX + assets:buckets:nodes_grape_claimable 0.000005969445768805315 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.086722975316868e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2951053288710064e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.722580321e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.9806324670516036e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.660646040077214e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 13394063663308142000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.033966674999999835 AVAX + assets:wallet:mim 13.771885733267023 MIM + assets:wallet:grape -13.394063663308145 GRAPE + assets:buckets:nodes_grape_claimable 0.000011938891538054719 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.1734459508072086e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.590210658088957e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.4451606421e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.961264933756262e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.932129208015443e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.017852512829801145 WINE + assets:wallet:grape_wine_lp 0.77 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00012534552560028445 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.3821182484256316e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.919721193751616e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -0.77 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.01785196802465993 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 8.359328180808367e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.0170353127665908e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.0000059688345523944975 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.086722975316868e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2951053288710064e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.722580321e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.9806324670516036e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.604930042289572e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04374202500000024 AVAX + assets:wallet:grape 12.852247049130561 GRAPE + assets:wallet:wine 0.05586606700107419 WINE + assets:wallet:grape_wine_lp -0.77 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000011937669104788995 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.1734459508072086e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.590210658088957e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.445160642e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.961264933756262e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.920986012274306e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010409624999999867 AVAX + assets:buckets:nodes_grape_claimable 0.000005968834552838587 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0867229754903405e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2951053288710064e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.722580321e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.980632467398548e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.604930038820125e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 13394063663308142000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.033966674999999835 AVAX + assets:wallet:mim 13.76973097217133 MIM + assets:wallet:grape -13.394063663308145 GRAPE + assets:buckets:nodes_grape_claimable 0.000011937669105233084 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.1734459508072086e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.590210662599238e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.4451606422e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.961264934103207e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9209860119273614e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.017889793067321594 WINE + assets:wallet:grape_wine_lp 0.77 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.0001312290312696085 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.5836978311737664e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 7.252343007697892e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -0.77 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.017889222319078402 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 8.75562834224547e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.112715860799752e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005964955966941687 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.083499014114698e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2965195507356215e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.722580321e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.979831064704342e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253921242061e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04374202500000024 AVAX + assets:wallet:grape 12.853185922937364 GRAPE + assets:wallet:wine 0.055862035042852254 WINE + assets:wallet:grape_wine_lp -0.77 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.000017894867900380973 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 6.250497042517567e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.889558647696584e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.167740963e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.1939493194113027e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.8809761760256736e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010409624999999867 AVAX + assets:buckets:nodes_grape_claimable 0.000005964955966941687 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.083499014114698e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.296519551082566e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.7225803211e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.979831064704342e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253921242061e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 13395042249058934000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.033966674999999835 AVAX + assets:wallet:mim 13.739637614962916 MIM + assets:wallet:grape -13.395042249058932 GRAPE + assets:buckets:nodes_grape_claimable 0.000011929911933883375 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.166998028229396e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.593039096960962e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.4451606420999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.959662129408684e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.920650780085076e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.017891946344784485 WINE + assets:wallet:grape_wine_lp 0.77 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.0001252506646785001 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.3740863711096145e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.922540152567991e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -0.77 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.017891401539643272 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 8.357645235844424e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.016683322003665e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005964317365769745 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0828982719156564e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2964476929381314e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.722580321e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.9798310643573975e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253879608697e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04374202500000024 AVAX + assets:wallet:grape 12.853185922937364 GRAPE + assets:wallet:wine 0.05586203504285228 WINE + assets:wallet:grape_wine_lp -0.77 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.0000119286347310954 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.165796543831313e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592895385876263e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.445160642e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.95966212906174e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.920650780085076e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010409624999999867 AVAX + assets:buckets:nodes_grape_claimable 0.000005964317365769745 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0828982719156564e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.296447688080906e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.722580321e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.979831064704342e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253921242061e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 13395042249058934000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.033966674999999835 AVAX + assets:wallet:mim 13.74023434157665 MIM + assets:wallet:grape -13.395042249058932 GRAPE + assets:buckets:nodes_grape_claimable 0.00001192863473153949 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.165796543831313e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592895380672092e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.4451606421e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.959662129408684e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9206507839014675e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006554475000000171 AVAX + assets:buckets:nodes_grape_claimable 0.000005964317365325655 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0828982720891287e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2964476929381314e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.7225803209999993e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.979831064704342e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253921242061e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 58216993834597130][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.030110174999999906 AVAX + assets:wallet:mim 13.760734263523577 MIM + assets:wallet:wine -0.058216993834597136 WINE + assets:buckets:nodes_grape_claimable 0.0000119286347310954 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.165796544004785e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592895385876263e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.445160642e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.959662129408684e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.920650780085076e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.021781281509436534 WINE + assets:wallet:mim_wine_lp 0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00020875110779750017 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 7.290143951860922e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000011537566921154818 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.029031123669999e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.7000000000000002 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.021779888568563915 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 3.361138869589775e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005964317365325655 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0828982719156564e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.296447688080906e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.7225803210000033e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.075358789e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253921242061e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 13.05939975265016 MIM + assets:wallet:wine 0.05508666978490537 WINE + assets:wallet:mim_wine_lp -0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.0000119286347310954 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.165796543831313e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592895380672092e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.4451606420000066e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 6.1507175779e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9206507839014675e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006554475000000171 AVAX + assets:buckets:nodes_grape_claimable 0.000005964317365769745 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0828982719156564e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2964476929381314e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.7225803209999927e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.0753587892000003e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253921242061e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 57409321889056100][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.030110174999999906 AVAX + assets:wallet:mim 13.568587295752248 MIM + assets:wallet:wine -0.05740932188905612 WINE + assets:buckets:nodes_grape_claimable 0.00001192863473153949 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.165796543831313e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592895385876263e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.445160642199991e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 6.1507175781e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.920650780085076e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006559425000000285 AVAX + assets:buckets:nodes_grape_claimable 0.009870945240137985 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.00003447196640086504 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.00005455620929863819 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000028508704313285 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000050897187958544 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000015893385225836804 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 26053933727129860000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.030119175000000276 AVAX + assets:wallet:mim 26.724657909028664 MIM + assets:wallet:grape -26.053933727129863 GRAPE + assets:buckets:nodes_grape_claimable 0.00987690955750331 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000344927953835842 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000054589173775564104 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000028525930116495 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000050927941546433 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000015902988479758046 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006559424999999841 AVAX + assets:buckets:nodes_grape_claimable 0.00010735771258163496 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.7492168895175704e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.933605845206968e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.1006445778799976e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.535645820260002e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.7285857044010977e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 1042157349085194300][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.03011647499999981 AVAX + assets:wallet:mim 1.068967343348529 MIM + assets:wallet:grape -1.042157349085194 GRAPE + assets:buckets:nodes_grape_claimable 0.00011332202994696061 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.957506716709136e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.263250614015059e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.2729026099799884e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.843181699150021e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8246182435788239e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.00005772448447019518 WINE + assets:wallet:mim_wine_lp 0.14 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.0010556841737185962 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000036867299413618354 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000058347124144188245 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.0000030489671682489975 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.14000000000000012 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.000052281099413608 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000001699775942602677 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005964317365769745 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0828982719156564e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2964476929381314e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.7225803211005355e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.8944546756e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253917772614e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 2.611761807241881 MIM + assets:wallet:wine 0.011017833576467906 WINE + assets:wallet:mim_wine_lp -0.14 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00001192863473153949 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.165796544004785e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592895381019037e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.445160642100105e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.7889093514e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9206507839014675e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006546375000000104 AVAX + assets:buckets:nodes_grape_claimable 0.000005964317365325655 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0828982719156564e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2964476929381314e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.7225803210002468e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.8944546758000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253879608697e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 11482489672220672][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.03009937500000026 AVAX + assets:wallet:mim 2.7137176061049173 MIM + assets:wallet:wine -0.01148248967222068 WINE + assets:buckets:nodes_grape_claimable 0.0000119286347310954 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.165796543831313e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592895385876263e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.4451606420004936e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.7889093514e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.920650780085076e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.00003345250983469161 WINE + assets:wallet:grape_wine_lp 0.16 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00010735771258163496 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.7492168895175704e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.933605845206968e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -0.15999999999999992 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.000033142445376894 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.210018416389999e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.7285857044010977e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381949999999751 AVAX + assets:buckets:nodes_grape_claimable 0.000005964317365325655 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0828982720891287e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.296447688080906e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.5413928366e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.894454675600006e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253921242061e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04194449999999961 AVAX + assets:wallet:grape 2.6707918800908796 GRAPE + assets:wallet:wine 0.01160769559331995 WINE + assets:wallet:grape_wine_lp -0.16 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.0000119286347310954 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.165796544004785e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592895381019037e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0827856732e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.788909351499999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9206507842484122e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006556725000000263 AVAX + assets:buckets:nodes_grape_claimable 0.000005964317365769745 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0828982719156564e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2964476929381314e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.5413928367e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.894454675800001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253879608697e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 2783385510677944400][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.03011377500000023 AVAX + assets:wallet:mim 2.8549822895800023 MIM + assets:wallet:grape -2.7833855106779435 GRAPE + assets:buckets:nodes_grape_claimable 0.0000119286347310954 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.165796544004785e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592895385529318e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0827856734000004e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.788909351600002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.920650779738131e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.0065517750000001485 AVAX + assets:buckets:nodes_grape_claimable 0.000005964317365769745 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0828982719156564e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2964476929381314e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.5413928367e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.894454675600006e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253921242061e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 12097362508180935][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.030107474999999884 AVAX + assets:wallet:mim 2.8589805793682634 MIM + assets:wallet:wine -0.012097362508180942 WINE + assets:buckets:nodes_grape_claimable 0.00001192863473153949 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.165796543831313e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.592895381019037e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0827856732999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.7889093513999964e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9206507842484122e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.02312460000000005 AVAX + assets:wallet:wine 0.027028009350946652 WINE + assets:wallet:grape_mim_lp 2.0599999999999996 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.00014314361677536525 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.998955852701659e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -2.059999999999995 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.027027218203500597 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.6993428079900003e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 6.94669122184e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.3047809388082596e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000005964317365325655 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0828982719156564e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.1513083282e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.5413928365999984e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.894454675900004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253921242061e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04421790000000003 AVAX + assets:wallet:mim 2.6119805147428288 MIM + assets:wallet:grape 2.53884289082872 GRAPE + assets:wallet:grape_mim_lp -2.0599999999999996 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.0000119286347310954 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.165796543831313e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.3026166608e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0827856732999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.78890935150001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9206507839014675e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006559424999999841 AVAX + assets:buckets:nodes_grape_claimable 0.000005964317365769745 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0828982719156564e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.1513083326e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.5413928367000012e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.8944546757999904e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.603253921242061e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 2645873890623502000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.03011647499999981 AVAX + assets:wallet:mim 2.7139238317753405 MIM + assets:wallet:grape -2.645873890623502 GRAPE + assets:buckets:nodes_grape_claimable 0.0000119286347310954 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.165796544004785e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.3026166653e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.0827856732999995e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.788909351600002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9206507842484122e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.027065469416555063 WINE + assets:buckets:nodes_grape_claimable 0.00033367485389934615 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000011639319912621487 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.027063622889380974 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.0000014505861133072562 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000002227558021782039 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.368432779602472e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.021903301613459325 WINE + assets:buckets:nodes_grape_claimable 0.0000059584795337741525 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0784499845175053e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2973699498e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.5903323451481608e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.02190326183563751 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.586487079854544e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.017972619765488945 WINE + assets:buckets:nodes_grape_claimable 0.0000059584795337741525 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.078449984344033e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2973699545000005e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.017972593862165487 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.9777821816e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.586487121487908e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 18.392361067810228 GRAPE + assets:buckets:nodes_grape_claimable 0.000005958479534218242 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.078449984344033e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2973699543999996e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.5903323451e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.9777821817000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.586487121487908e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -18.392361067810228 WINERY_GRAPE_CLAIMABLE + + +2022-06-27 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.013009733083852976 WINE + assets:buckets:nodes_grape_claimable 0.0000059584795337741525 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable -0.013009712299353136 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.297369954500001e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.5903323451e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.977782181899998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.586487079854544e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.025600725000000324 AVAX + assets:wallet:grape 3.4069332537963746 GRAPE + assets:buckets:nodes_grape_claimable -3.406927295316838 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0774038312e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2973699544999985e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.5903323453e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.9777821817000004e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.58648711801846e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.027068832717068822 WINE + assets:buckets:nodes_grape_claimable 0.000041706513419281777 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.4549149890755175e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.027068601902130365 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.813232641638407e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.7844475272362224e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 6.710711283886006e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.02190783628514653 WINE + assets:buckets:nodes_grape_claimable 0.000059580733456243706 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0784499843960746e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.29735626312e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.5903323451828553e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.02190743850692835 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.58658506015897e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.017975909487567332 WINE + assets:buckets:nodes_grape_claimable 0.0000536226601104417 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.870604985944324e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.96762063708e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.017975728164303168 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.7844475272399996e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.586548723947153e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.02354579999999995 AVAX + assets:wallet:grape 18.392361067810228 GRAPE + assets:buckets:nodes_grape_claimable 0.000041706513419281777 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.870604985944324e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.3081493840899998e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.81323264163e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.78444752724e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 6.710584107838535e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -18.392361067810228 WINERY_GRAPE_CLAIMABLE + + +2022-06-27 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.013012871388900588 WINE + assets:buckets:nodes_grape_claimable 0.000059580733456243706 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable -0.013012663673215989 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2973562631099985e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.5903323452100006e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.977782181769998e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.586548728110489e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:grape 3.4079104668517886 GRAPE + assets:buckets:nodes_grape_claimable -3.407868760338365 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.45399961407e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.3081493845600035e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.8132326416299992e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.7844475272100003e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 6.710310624172267e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.00026590646097096604 WINE + assets:wallet:mim_wine_lp 0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.0002903631292731218 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.534203286260066e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000015156921750689991 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.0000011963622921979983 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.7000000000000002 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.000264077557210262 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 4.4053707623850635e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006312241940718832 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0726528882997284e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.294982989300349e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6007875917992418e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.0723037774e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.576892959217709e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.042060150000000185 AVAX + assets:wallet:mim 13.118556334141967 MIM + assets:wallet:wine 0.05484263419399196 WINE + assets:wallet:mim_wine_lp -0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000012624483881444604 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.145305776599457e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.58996597850041e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.201575183601194e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 6.1446075548e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9153785921904865e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.0065544749999997265 AVAX + assets:buckets:nodes_grape_claimable 0.000006312241940718832 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0726528882997284e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.294982989300349e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.600787591698953e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.0723037774e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.576892959217709e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 57185489193847580][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.030110174999999906 AVAX + assets:wallet:mim 13.637322336116155 MIM + assets:wallet:wine -0.05718548919384758 WINE + assets:buckets:nodes_grape_claimable 0.000012624483881437665 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.145305776599457e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.589965978600698e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.201575183498195e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 6.1446075548e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9153785918435418e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.000006083161479347732 WINE + assets:wallet:mim_wine_lp 0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.0012245749364996894 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000004020946603333999 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000006392266999201993 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000005045527927970996 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.7 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -1.22892151096e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.000001857917234442119 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381949999999751 AVAX + assets:buckets:nodes_grape_claimable 0.000006312241940725771 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0726528882997284e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.294982989300349e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6007875917016636e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.1686494865e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.576892959217709e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 13.117963206975194 MIM + assets:wallet:wine 0.05484512011361345 WINE + assets:wallet:mim_wine_lp -0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000012624483881444604 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.145305776599457e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.58996597850041e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.2015751835009054e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.3372989732e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.915378596006878e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006554475000000171 AVAX + assets:buckets:nodes_grape_claimable 0.000006312241940718832 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0726528882997284e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.294982989300349e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6007875917992418e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.1686494867000007e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.576892959217709e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 57187574619123140][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.030110174999999906 AVAX + assets:wallet:mim 13.636584910226048 MIM + assets:wallet:wine -0.05718757461912316 WINE + assets:buckets:nodes_grape_claimable 0.000012624483881437665 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.145305776602167e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.589965978600698e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.201575183601194e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.3372989732e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9153785918435418e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 5.204758767862749e-7 WINE + assets:wallet:mim_wine_lp 0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.0001262448388144044 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.1453057766398433e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.589965978560041e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.201575183470006e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.7000000000000001 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -8.6745979464e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9153785919823196e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006312241940718832 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0726528882997284e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.294982989300349e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6007875917992418e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.2649148575e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.576892962687156e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 13.117370086097864 MIM + assets:wallet:wine 0.05484760623196405 WINE + assets:wallet:mim_wine_lp -0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000012624483881437665 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.145305776599457e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.58996597850041e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.201575183498195e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.529829715e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9153785921904865e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006554475000000171 AVAX + assets:buckets:nodes_grape_claimable 0.000006312241940718832 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0726528882997284e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.294982989297639e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6007875918019523e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.2649148574999999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.576892959217709e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 57190702757036485][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.030110174999999906 AVAX + assets:wallet:mim 13.63609606821258 MIM + assets:wallet:wine -0.0571907027570365 WINE + assets:buckets:nodes_grape_claimable 0.000012624483881437665 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.145305776602167e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.589965978597988e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.201575183300328e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.5298297151000002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9153785918435418e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 4.42720200138913e-7 WINE + assets:wallet:mim_wine_lp 0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.00019567950016232544 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 6.425223953779844e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000010214447266770096 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 8.062441534400111e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked -0.7 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -5.0596594301e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.9688368180166846e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381950000000195 AVAX + assets:buckets:nodes_grape_claimable 0.000006312241940718832 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0726528882997284e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.2949829892000605e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6007875917992418e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.610998794e-9 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.576892959217709e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.removeLiquidity[LP mim-wine-lp] + assets:wallet:avax -0.04385767499999993 AVAX + assets:wallet:mim 13.116776960697933 MIM + assets:wallet:wine 0.054850092594392996 WINE + assets:wallet:mim_wine_lp -0.7 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000012624483881437665 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.1453057766997455e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.58996597850041e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.201575183498195e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.221997588e-9 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9153785918435418e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.006554475000000171 AVAX + assets:buckets:nodes_grape_claimable 0.000006312241940718832 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.0726528882997284e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.294982989300349e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.6007875918019523e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.6109987949999997e-9 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.576892962687156e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 traderjoe.swapExactTokensForTokens[tokenInAmount 57192788182312050][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.03011017500000035 AVAX + assets:wallet:mim 13.635358555333923 MIM + assets:wallet:wine -0.057192788182312077 WINE + assets:buckets:nodes_grape_claimable 0.000012624483881444604 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.145305776599457e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.589965978600698e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 5.201575183400617e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.221997589e-9 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.9153785921904865e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381949999999751 AVAX + assets:buckets:nodes_grape_claimable 0.00041660796808751926 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000013679509062890151 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000021746887729240003 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.0000017165198105480075 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.38325920433e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 6.320749354402078e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.005904450000000061 AVAX + assets:buckets:nodes_grape_claimable 0.00011993259687368557 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.9380404877998416e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.260467679629735e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.941496424309868e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 6.860897709500001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8196096628064762e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-06-27 approve traderjoe.removeLiquidity + assets:wallet:avax -0.005904450000000061 AVAX + assets:buckets:nodes_grape_claimable 0.0014076299527805702 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.000004622015940945013 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000073478120660930226 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000005799756329575022 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 8.0525273116e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.0000021356471303184132 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.019212277120193855 WINE + assets:buckets:nodes_grape_claimable 0.00022024654868291194 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.037649751758744e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.019211179683758125 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 7.400805338720479e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.0000012704388111899056 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.1339102840300939e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.02227609582534898 WINE + assets:buckets:nodes_grape_claimable 0.00000611795968552542 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.3993471532566804e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0484345423e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.0557792607123204e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.022276060535382003 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.92752855826939e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.014346500245796645 WINE + assets:buckets:nodes_grape_claimable 0.0000061179596859695096 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.3993471532566804e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0484345423e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.014346479688004007 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5289966977e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.92752855826939e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 20.083141975648402 GRAPE + assets:buckets:nodes_grape_claimable 0.00001223591937105084 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.7986943065133607e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.0968690893e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.1115585213e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.057993395400001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1855057165111038e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -20.08314197564841 WINERY_GRAPE_CLAIMABLE + + +2022-07-04 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.01015079145619413 WINE + assets:buckets:nodes_grape_claimable 0.00000611795968552542 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable -0.01015077746272264 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0484345423e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.0557792608000002e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.528996697699999e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.92752855826939e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.025600725000000324 AVAX + assets:wallet:grape 3.856995583998284 GRAPE + assets:buckets:nodes_grape_claimable -3.8569894660386 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.3990859417e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.0484345423e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.0557792608000002e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.528996697700002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.92752855826939e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 nodeContract.approve + assets:wallet:avax -0.0104015249999998 AVAX + assets:buckets:nodes_grape_claimable 0.000012235269338048 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.7981718836e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.0968690893e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.1115585216000005e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.057993395800002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1855057123477675e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-grapenode.create[nodeTier 0][numNodes 1] + assets:wallet:avax -0.03066142499999991 AVAX + assets:wallet:grape -49.99999999999999 GRAPE + assets:buckets:nodes_grape 1 NODES_GRAPE + assets:buckets:nodes_grape_claimable 0.000036707496678674 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 4.1972578254e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.145303631599998e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.167337782199999e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.0586990093499998e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.778258572338043e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.023132700000000117 AVAX + assets:wallet:wine 3.0484345436843086e-7 WINE + assets:wallet:grape_mim_lp 31.947529700790174 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000012235832226225 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.3990859418e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -31.94752970079017 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -2.74359108901e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.0557792607000014e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.528996697700002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.92752855826939e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000012235832226224004 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.3990859418e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.668364581e-9 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.055779260799999e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5289966976999965e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.92752855826939e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04243117499999993 AVAX + assets:wallet:mim 40.59340496835409 MIM + assets:wallet:grape 39.39450658523608 GRAPE + assets:wallet:grape_mim_lp -31.94752970079017 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000024471664452448998 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.7981718836e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.9336729177e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.111558521599998e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.057993395399998e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.185505711653878e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010384649999999773 AVAX + assets:buckets:nodes_grape_claimable 0.000012235832226225007 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.3990859418e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.668364581e-9 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.0557792608000016e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.528996697700002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.927528565208284e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-vineyard.deposit[LP grape-wine-lp] + assets:wallet:avax -0.033755175000000026 AVAX + assets:wallet:wine 2.4669351128547845e-7 WINE + assets:wallet:grape_wine_lp -0.000645273826193363 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00002447166445245 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.7981718835999987e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.9336729177e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked 0.0006452738261932822 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -2.05577926074e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.057993395500001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1855057123477675e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 traderjoe.addLiquidity + assets:wallet:avax -0.01042537500000007 AVAX + assets:buckets:nodes_grape_claimable 0.000012235832226225007 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.3990859418000013e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.668364595999997e-9 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.0563580168e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.528996698000005e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.92752855826939e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 traderjoe.addLiquidity + assets:wallet:avax -0.016977149999999774 AVAX + assets:buckets:nodes_grape_claimable 0.00002447166445244901 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.7981718836e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.9336729177999996e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.1127160336e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.057993395699996e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1855057158172144e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 traderjoe.addLiquidity[token1 mim][token2 wine][amount1 36201303192254371766][amount2 134059249060327484] + assets:wallet:avax -0.05206432499999991 AVAX + assets:wallet:mim -36.20130319225437 MIM + assets:wallet:wine -0.13354939713101033 WINE + assets:wallet:mim_wine_lp 1.8070948035539802 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000048943328904899 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 5.5963437672e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.8673458370000004e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 8.2254320673e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.41159867911e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.371011428164982e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.000012235832226225007 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.3990859418000013e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.66836458099999e-9 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.0563580171e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.528996697700002e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.92752855826939e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-vineyard.deposit[LP mim-wine-lp] + assets:wallet:avax -0.03376057500000007 AVAX + assets:wallet:wine 6.705093725800637e-7 WINE + assets:wallet:mim_wine_lp -1.807081082442304 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000024471664452450014 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.7981718836e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.9336729176999994e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 4.112716033900001e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked 1.8070810824423043 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -5.99929438617e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.185505711653878e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.01963215000000007 AVAX + assets:wallet:wine 0.019217916724099643 WINE + assets:buckets:nodes_grape_claimable 0.00006117179645759308 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.3993471532566804e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.019217611880645285 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.0557792607817094e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5289966977478104e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.927441520253707e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.02228311852877754 WINE + assets:buckets:nodes_grape_claimable 0.00007340615574902287 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.2594124379310123e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.04843454371e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.055779260747015e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.022282765629107745 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.927441523723154e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.014350899613414597 WINE + assets:buckets:nodes_grape_claimable 0.00007340615574902287 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.6792165839253637e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.6581214521599993e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.014350652919903341 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.2347960372899993e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.9274415195598174e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.02354579999999995 AVAX + assets:wallet:grape 20.083141975648402 GRAPE + assets:buckets:nodes_grape_claimable 0.00005505461681210022 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.2594124379310123e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.7435910890100014e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.46693511291e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.176097027980001e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.927441520253707e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -20.08314197564841 WINERY_GRAPE_CLAIMABLE + + +2022-07-04 grapefinance-winenode.nodes_wine.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:wine 0.010154163882833578 WINE + assets:buckets:nodes_grape_claimable 0.00006117179645759308 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable -0.010154023964385623 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.048434543710001e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.0557792607500002e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5289966977700006e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.927441520253707e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:grape 3.85856167481235 GRAPE + assets:buckets:nodes_grape_claimable -3.8584943879313776 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.8184463781200001e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.3532779979399993e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.2613571868300006e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.881896367509998e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 6.520185671932133e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 nodeContract.approve + assets:wallet:avax -0.010401525000000245 AVAX + assets:buckets:nodes_grape_claimable 0.000067283214484918 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.5386853968699998e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.7435910890100014e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.8502013346599984e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.17602573257e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.334697372044728e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-grapenode.create[nodeTier 0][numNodes 1] + assets:wallet:avax -0.03174142500000032 AVAX + assets:wallet:grape -50 GRAPE + assets:buckets:nodes_grape 1 NODES_GRAPE + assets:buckets:nodes_grape_claimable 0.000299733024771654 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.65772932186e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 5.18233872426e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.494824743279999e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.999032969679999e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.185488304397686e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-vineyard.withdraw[pid 0-grapemimlp] + assets:wallet:avax -0.023132699999999673 AVAX + assets:wallet:wine 0.0000037190901432393453 WINE + assets:wallet:grape_mim_lp 32.170854018959155 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000122338746418857 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.3988049062400005e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_staked -32.17085401895915 VINEYARD_GRAPE_MIM_LP_STAKED + assets:buckets:vineyard_grape_mim_lp_wine_claimable -0.0000034561696794850003 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.0557792607400015e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5287590463999976e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.927441520253707e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010390050000000262 AVAX + assets:buckets:nodes_grape_claimable 0.0000856371224932 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.2589244156199994e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.665995103299999e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.05577926076e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 2.4701313324700034e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.927441524417043e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 traderjoe.removeLiquidity[LP grape-mim-lp] + assets:wallet:avax -0.04862407500000021 AVAX + assets:wallet:mim 40.884760484285536 MIM + assets:wallet:grape 39.66253838566536 GRAPE + assets:wallet:grape_mim_lp -32.170854018959155 GRAPE_MIM_LP + assets:buckets:nodes_grape_claimable 0.000207975868912057 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.657729321859999e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.6188845249999997e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.4948247432999975e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 5.998890378870001e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.0076650588247693e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010384649999999773 AVAX + assets:buckets:nodes_grape_claimable 0.000122338746418857 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.791634343700001e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 9.5213634707e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.0557792607399972e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.528759046410001e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.927441520253707e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-vineyard.deposit[LP grape-wine-lp] + assets:wallet:avax -0.034835174999999996 AVAX + assets:wallet:wine 0.0000028780909650527597 WINE + assets:wallet:grape_wine_lp -0.000645273826193363 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.0002446774928377141 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.797609812480001e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.9042355273200005e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked 0.0006452738261932822 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.0000024669177502240003 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.057518092809999e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1854883040507413e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 traderjoe.addLiquidity + assets:wallet:avax -0.01042537500000007 AVAX + assets:buckets:nodes_grape_claimable 0.0001101048717769722 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.2589244156199994e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 8.568892621699993e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.8507222152000002e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.1758831417499944e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.3346973678813914e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 traderjoe.addLiquidity + assets:wallet:avax -0.016977149999999774 AVAX + assets:buckets:nodes_grape_claimable 0.0002202097435539431 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.5177724798e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.7137785244799994e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.70144443041e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 6.351766283509992e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.0669394735762783e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 traderjoe.addLiquidity[token1 mim][token2 wine][amount1 36329920777921437036][amount2 134069466111123359] + assets:wallet:avax -0.05377432500000001 AVAX + assets:wallet:mim -36.32992077792144 MIM + assets:wallet:wine -0.1335966219730062 WINE + assets:wallet:mim_wine_lp 1.810615833042724 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.0003425484899728 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 3.9164246831700005e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.665877704869999e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 6.37470985237e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 9.880525329919993e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.659683625601649e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 approve grapefinance-vineyard.deposit + assets:wallet:avax -0.010387349999999795 AVAX + assets:buckets:nodes_grape_claimable 0.0001223387464188571 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.790565423600023e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 6.664694261499997e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.0563580168900005e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5287590463999976e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 5.927441523723154e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-04 grapefinance-vineyard.deposit[LP mim-wine-lp] + assets:wallet:avax -0.03484057500000004 AVAX + assets:wallet:wine 0.00000762231203782493 WINE + assets:wallet:mim_wine_lp -1.8106003514163036 MIM_WINE_LP + assets:buckets:nodes_grape_claimable 0.000232443618195828 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.6574391864099993e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.80898844256e-7 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 3.907080232099999e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_staked 1.8106003514163036 VINEYARD_MIM_WINE_LP_STAKED + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.00000691036739271 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.1262138892298434e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-11 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.023127300000000073 AVAX + assets:wallet:wine 0.011704389235205198 WINE + assets:wallet:grape_wine_lp 1.05 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.0015564669486600735 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.982632853296203e-7 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.0000011029174481558615 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_staked -1.0499999999999998 VINEYARD_GRAPE_WINE_LP_STAKED + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.01170269696149035 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 0.000003539367855631692 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.333802209951503e-7 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-11 approve traderjoe.removeLiquidity + assets:wallet:avax -0.010381949999999751 AVAX + assets:buckets:nodes_grape_claimable 0.00003112933897320147 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.996526570718221e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.2058348952101736e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.8339433693e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.078735711832373e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8667604441413577e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-11 traderjoe.removeLiquidity[LP grape-wine-lp] + assets:wallet:avax -0.04194450000000005 AVAX + assets:wallet:grape 14.295919796949747 GRAPE + assets:wallet:wine 0.09513744918213998 WINE + assets:wallet:grape_wine_lp -1.05 GRAPE_WINE_LP + assets:buckets:nodes_grape_claimable 0.00004669400845891403 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 2.9947898560339636e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 3.308752344246407e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 2.7509150539e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 1.0618103566881198e-7 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.800140664477313e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-11 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.010406924999999845 AVAX + assets:buckets:nodes_grape_claimable 0.000015564669485712557 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.982632853157425e-9 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1029174476484549e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.169716847999998e-9 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.539367856089659e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.33380219642066e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-11 traderjoe.swapExactTokensForTokens[tokenInAmount 14815868074195828000][tokenIn grape][tokenOut mim] + assets:wallet:avax -0.03396397499999981 AVAX + assets:wallet:mim 13.598218608779046 MIM + assets:wallet:grape -14.815868074195834 GRAPE + assets:buckets:nodes_grape_claimable 0.00003112933897320147 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.996526570718221e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.2058348952969098e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.8339433694e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.078735711485429e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8667604434474683e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-11 approve traderjoe.swapExactTokensForTokens + assets:wallet:avax -0.0065517750000001485 AVAX + assets:buckets:nodes_grape_claimable 0.000015564669485712557 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.982632852290063e-9 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1029174491229699e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.169716846000001e-9 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5393678557427144e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.333802203359554e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-11 traderjoe.swapExactTokensForTokens[tokenInAmount 98597169050664000][tokenIn wine][tokenOut mim] + assets:wallet:avax -0.030110174999999906 AVAX + assets:wallet:mim 13.486683345038049 MIM + assets:wallet:wine -0.09859716905066401 WINE + assets:buckets:nodes_grape_claimable 0.00003112933897320147 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.9965265705447488e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.2058348967714247e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.8339433692000003e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.078735711485429e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8667604399780213e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-11 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.030860045945208275 WINE + assets:buckets:nodes_grape_claimable 0.050912033890636366 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.00003265319206315932 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000036076429729072976 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 0.000029994143805172 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.03074427322265041 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.00003053086702931723 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-11 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.019068299999999816 AVAX + assets:wallet:grape 6.440216069854614 GRAPE + assets:buckets:nodes_grape_claimable 0.00003112933897320147 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.996526570631485e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.2058348952969098e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.833943369300138e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 7.0787357112e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.8667604399780213e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -6.440216069854611 WINERY_GRAPE_CLAIMABLE + + +2022-07-11 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.025600725000000324 AVAX + assets:wallet:grape 8.813168123181356 GRAPE + assets:buckets:nodes_grape_claimable -8.813152558511872 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.982632854024787e-9 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.1029174491229699e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.169716846997052e-9 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 3.5393678553999996e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 9.333802203359554e-9 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-12 grapefinance-vineyard.withdraw[pid 1-mimwinelp] + assets:wallet:avax -0.019634850000000093 AVAX + assets:wallet:wine 0.03430714136104032 WINE + assets:buckets:nodes_grape_claimable 0.001882827492337924 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 0.0000011104400999134567 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 0.000001542859256432709 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 9.844663480321203e-7 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable -0.034301638672585885 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 0.0000012829400928004997 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-12 grapefinance-vineyard.withdraw[pid 2-grapewinelp] + assets:wallet:avax -0.01963484999999965 AVAX + assets:wallet:wine 0.012871726756290086 WINE + assets:buckets:nodes_grape_claimable 0.000015690229103526576 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.253667498931861e-9 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.2857160466492323e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable -0.012871718552403853 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.5855737119e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.0691167437459903e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + + +2022-07-12 grapefinance-winery.winery.claimReward + assets:wallet:avax -0.01906830000000026 AVAX + assets:wallet:grape 6.4402160698546 GRAPE + assets:buckets:nodes_grape_claimable 0.000031380458205276796 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 1.8507334999598446e-8 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 2.571432093471937e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 1.6407772466e-8 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 9.171147423800001e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 2.13823348818587e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE + assets:buckets:winery_grape_claimable -6.440216069854611 WINERY_GRAPE_CLAIMABLE + + +2022-07-12 grapefinance-grapenode.nodes_grape.claim + assets:wallet:avax -0.02560072499999988 AVAX + assets:wallet:grape 10.169657472465062 GRAPE + assets:buckets:nodes_grape_claimable -10.169641782235958 NODES_GRAPE_CLAIMABLE + assets:buckets:nodes_wine_claimable 9.253667498931861e-9 NODES_WINE_CLAIMABLE + assets:buckets:vineyard_grape_mim_lp_wine_claimable 1.2857160466492323e-8 VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_wine_lp_wine_claimable 8.203886232e-9 VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_mim_wine_lp_wine_claimable 4.5855737118999986e-8 VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE + assets:buckets:vineyard_grape_staked_wine_claimable 1.0691167437459903e-8 VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE diff --git a/contracts/Swapper.sol b/contracts/Swapper.sol new file mode 100644 index 0000000..5b58c15 --- /dev/null +++ b/contracts/Swapper.sol @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.4; + +interface IRouter { + function swapExactTokensForTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); + // function swapExactTokensForTokens( uint256 amountIn,uint256 amountOutMin,address[] memory path,address to,uint256 deadline ) external returns (uint256[] memory amounts) ; + +} + +interface IERC20 { + function transferFrom(address from, address to, uint value) external; + function approve(address to, uint value) external returns (bool); + +} + +contract Swapper { + + address private wavax; + address private router; + + constructor(address _wavax_address, address _router){ + wavax = _wavax_address; + router = _router; + } + + /** + * This function will take perform a swap on Pangolin, given a pair (must be a wavax - token X) pair . + * @param amountOutMin Minimum amount of token that we want to get after our swap. + * @param path Array of tokens' address + * @param pair Address of the liquidity pair we will use in this swap + * @param deadline Not relevant for avalanche, just pass timestamp that is in the future + */ + function swap(uint256 amountOutMin, address[] calldata path, address pair, uint256 amountIn, uint256 deadline) external { + IERC20(wavax).transferFrom(msg.sender, address(this), amountIn); + IERC20(wavax).approve(router, amountIn); + IRouter(router).swapExactTokensForTokens(amountIn, amountOutMin, path, msg.sender, deadline); + } +} \ No newline at end of file diff --git a/contracts/interfaces/ITraderJoe.sol b/contracts/interfaces/ITraderJoe.sol new file mode 100644 index 0000000..c3785dd --- /dev/null +++ b/contracts/interfaces/ITraderJoe.sol @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity >=0.7.0 <0.9.0; + +interface ITraderJoe { +function WAVAX( ) external view returns (address ) ; +function addLiquidity( address tokenA,address tokenB,uint256 amountADesired,uint256 amountBDesired,uint256 amountAMin,uint256 amountBMin,address to,uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity) ; +function addLiquidityAVAX( address token,uint256 amountTokenDesired,uint256 amountTokenMin,uint256 amountAVAXMin,address to,uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountAVAX, uint256 liquidity) ; +function factory( ) external view returns (address ) ; +function getAmountIn( uint256 amountOut,uint256 reserveIn,uint256 reserveOut ) external pure returns (uint256 amountIn) ; +function getAmountOut( uint256 amountIn,uint256 reserveIn,uint256 reserveOut ) external pure returns (uint256 amountOut) ; +function getAmountsIn( uint256 amountOut,address[] memory path ) external view returns (uint256[] memory amounts) ; +function getAmountsOut( uint256 amountIn,address[] memory path ) external view returns (uint256[] memory amounts) ; +function quote( uint256 amountA,uint256 reserveA,uint256 reserveB ) external pure returns (uint256 amountB) ; +function removeLiquidity( address tokenA,address tokenB,uint256 liquidity,uint256 amountAMin,uint256 amountBMin,address to,uint256 deadline ) external returns (uint256 amountA, uint256 amountB) ; +function removeLiquidityAVAX( address token,uint256 liquidity,uint256 amountTokenMin,uint256 amountAVAXMin,address to,uint256 deadline ) external returns (uint256 amountToken, uint256 amountAVAX) ; +function removeLiquidityAVAXSupportingFeeOnTransferTokens( address token,uint256 liquidity,uint256 amountTokenMin,uint256 amountAVAXMin,address to,uint256 deadline ) external returns (uint256 amountAVAX) ; +function removeLiquidityAVAXWithPermit( address token,uint256 liquidity,uint256 amountTokenMin,uint256 amountAVAXMin,address to,uint256 deadline,bool approveMax,uint8 v,bytes32 r,bytes32 s ) external returns (uint256 amountToken, uint256 amountAVAX) ; +function removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens( address token,uint256 liquidity,uint256 amountTokenMin,uint256 amountAVAXMin,address to,uint256 deadline,bool approveMax,uint8 v,bytes32 r,bytes32 s ) external returns (uint256 amountAVAX) ; +function removeLiquidityWithPermit( address tokenA,address tokenB,uint256 liquidity,uint256 amountAMin,uint256 amountBMin,address to,uint256 deadline,bool approveMax,uint8 v,bytes32 r,bytes32 s ) external returns (uint256 amountA, uint256 amountB) ; +function swapAVAXForExactTokens( uint256 amountOut,address[] memory path,address to,uint256 deadline ) external payable returns (uint256[] memory amounts) ; +function swapExactAVAXForTokens( uint256 amountOutMin,address[] memory path,address to,uint256 deadline ) external payable returns (uint256[] memory amounts) ; +function swapExactAVAXForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin,address[] memory path,address to,uint256 deadline ) external payable ; +function swapExactTokensForAVAX( uint256 amountIn,uint256 amountOutMin,address[] memory path,address to,uint256 deadline ) external returns (uint256[] memory amounts) ; +function swapExactTokensForAVAXSupportingFeeOnTransferTokens( uint256 amountIn,uint256 amountOutMin,address[] memory path,address to,uint256 deadline ) external ; +function swapExactTokensForTokens( uint256 amountIn,uint256 amountOutMin,address[] memory path,address to,uint256 deadline ) external returns (uint256[] memory amounts) ; +function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn,uint256 amountOutMin,address[] memory path,address to,uint256 deadline ) external ; +function swapTokensForExactAVAX( uint256 amountOut,uint256 amountInMax,address[] memory path,address to,uint256 deadline ) external returns (uint256[] memory amounts) ; +function swapTokensForExactTokens( uint256 amountOut,uint256 amountInMax,address[] memory path,address to,uint256 deadline ) external returns (uint256[] memory amounts) ; +receive () external payable; +} \ No newline at end of file diff --git a/copyStaticAssets.ts b/copyStaticAssets.ts new file mode 100644 index 0000000..af4caba --- /dev/null +++ b/copyStaticAssets.ts @@ -0,0 +1,4 @@ +import * as shell from "shelljs"; + +shell.mkdir("-p", "dist"); +shell.cp("-R", "src/nodes/*.html", "dist/nodes/"); diff --git a/db/balances.json b/db/balances.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/db/balances.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/db/tokens.json b/db/tokens.json new file mode 100644 index 0000000..f2b1604 --- /dev/null +++ b/db/tokens.json @@ -0,0 +1,32 @@ +[ + { + "id": "avalanche", + "name": "Avalanche", + "symbol": "avax" + }, + { + "id": "binancecoin", + "name": "BNB", + "symbol": "bnb" + }, + { + "id": "ethereum", + "name": "Ethereum", + "symbol": "eth" + }, + { + "id": "fantom", + "name": "Fantom", + "symbol": "ftm" + }, + { + "id": "matic", + "name": "Polygon", + "symbol": "matic" + }, + { + "id": "usd-coin", + "name": "USD Coin", + "symbol": "usdc" + } +] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..0945560 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,48 @@ +version: "3.1" + +services: + + bot: + image: node:14-alpine + working_dir: /app + volumes: + - ./:/app + command: "npx hardhat --network local checkfunds" +# docker-compose exec bot hardhat --help +# command: [ +# "/bin/sh", +# "/home/node/app/exec-bot.sh" +# ] +# command: "/usr/sbin/crond -f -l 0 -c /home/node/app/crontab -L /var/log/cron.log" + links: + - localfork + environment: + - LOCALFORK_URL=http://localfork:8545 + - LOCALFORK_CHAIN_ID=431337 +# command: ["/usr/bin/sh", "/home/node/app/exec-bot.sh"] + + # hardhat: + # image: hardhat/hardhat + # working_dir: /home/node/app + # volumes: + # - ../:/home/node/app + # command: "/home/node/app/exec-hardhat.sh" + + localfork: + image: bstreet/exec-protocol-deps:latest +# restart: no + command: yarn run fork + environment: + - HARDHAT_FORK_URL=https://api.avax.network/ext/bc/C/rpc + - HARDHAT_CHAIN_ID=431337 + volumes: + - ./:/app +# - ../.env:/app/.env +# - ./tasks:/app/tasks +# - ./tests:/app/tests +# - ./scripts:/app/scripts +# - ./lib:/app/lib +# - ./.env:/app/.env +# - .//contracts:/app/tmp/contracts + ports: + - "8545:8545" \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..ed426b3 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,16 @@ +# https://github.com/garethfuller/hardhat-template/blob/main/Dockerfile.dev +FROM bstreet/exec-protocol-deps:latest + +ENV APP_ROOT /app +WORKDIR ${APP_ROOT} + +# TODO: should we use COPY? +ADD ./ ${APP_ROOT} + +RUN pwd && ls -alh && tree -I node_modules . + +RUN npx hardhat --help + +EXPOSE 8545 + +CMD [ "yarn", "dev" ] diff --git a/docker/Dockerfile-deps b/docker/Dockerfile-deps new file mode 100644 index 0000000..f29a09f --- /dev/null +++ b/docker/Dockerfile-deps @@ -0,0 +1,50 @@ +# https://github.com/garethfuller/hardhat-template/blob/main/Dockerfile.dev +FROM node:14 + +ENV APP_ROOT /app +RUN mkdir ${APP_ROOT} + +#################################### +# add files +#################################### +ADD ./docker/deps ${APP_ROOT}/deps +#ADD ./hardhat.config.ts ${APP_ROOT}/ # decided that it's not necessary to check hardhat.config.ts in "deps" +ADD ./package.json ${APP_ROOT}/ +#################################### +# install OS dependencies +#################################### +WORKDIR ${APP_ROOT}/deps +RUN pwd && ls -lh . && chmod +x install-deps.sh && ./install-deps.sh +#################################### +# setup package.json +#################################### +WORKDIR ${APP_ROOT} +RUN pwd && ls -lh && tree . && yarn install +#################################### +# run checks +#################################### +WORKDIR $APP_ROOT/deps/checks +RUN pwd && ls -lh && \ + tree . && \ + mv checks.env .env && \ + cp -r ${APP_ROOT}/node_modules . && \ + pwd && ls -lh +#################################### +# check hardhat +#################################### +WORKDIR $APP_ROOT/deps/checks +RUN npx hardhat --version && \ + npx hardhat --help && \ + yarn run test:checks && \ + yarn run compile:checks && \ + yarn run deploy:checks && \ + npx hardhat accounts +#################################### +# check project +#################################### +WORKDIR ${APP_ROOT} +RUN pwd && ls -alh && tree -I node_modules . + +EXPOSE 8545 + +CMD [ "npx", "hardhat", "--config", "${APP_ROOT}/deps/checks/hardhat.config.js", "help" ] \ No newline at end of file diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000..4263f40 --- /dev/null +++ b/docker/README.md @@ -0,0 +1,104 @@ +# How To Dockerize Your Hardhat Solidity Contract + +This is the final code from the article "How To Dockerize Your Hardhat Solidity Contract On Localhost". +This is a base from the sample project provided by Hardhat but configured to use it with Docker. + +If you got value from this and want to see more content from me, please follow/add me on: + +- [twitter.com/codingwithmanny](https://twitter.com/codingwithmanny) +- [medium.com/@codingwithmanny](https://codingwithmanny.medium.com) +- [instagram.com/codingwithmanny](www.instagram.com/codingwithmanny/) + +## Requirements + +- NVM or NodeJS `v14.17.6` +- Docker `v20.10.8` +- Yarn `v1.22.10` + +## Local Setup + +1. Make sure you have the correct version of NodeJS + +```bash +nvm install; +``` + +2. In dependencies + +```bash +yarn install; # or just yarn +``` + +3. Compile contract + +```bash +yarn compile:local; # this is for our client/node.js file +``` + +4. Build Docker image + +```bash +docker build . -t hhdocker; +``` + +5. Run Docker image + +```bash +# !NOTE: Double check no other programs are using that port 8545 +docker run -it -d -p 8545:8545 --name myhd hhdocker; +``` + +6. Verify that container is running + +```bash +docker logs myhd; +# Should see an output of wallet addresses and private keys +``` + +7. Compile local contract within Docker + +```bash +docker exec -it myhd yarn compile:local; +``` + +8. Deploy local contract within Docker with custom task + +```bash +docker exec -it myhd yarn deploy:local; +``` + +9. Create `.env` file used for out `client/node.js` file + +```bash +# Ugly version +echo "CONTRACT_ADDRESS=$(docker exec -it myhd cat .contract)\nWALLET_ADDRESS=$(docker exec -it myhd cat .wallet;)" > .env; + +# Prettier version +# export CONTRACT_ADDRESS="$(docker exec -it myhd cat .contract)"; +# export WALLET_ADDRESS="$(docker exec -it myhd cat .wallet)"; +# echo "CONTRACT_ADDRESS=$CONTRACT_ADDRESS\nWALLET_ADDRESS=$WALLET_ADDRESS" > .env; +# unset CONTRACT_ADDRESS; +# unset WALLET_ADDRESS; +``` + +10. Run our client + +```bash +node client/node.js; +``` + +Voilà! + +Don't forget to delete your container when you're done. + +```bash +docker rm -f myhd; +``` + +## Running Tests + +Main test files can be found in `/test`. + +```bash +yarn test:local; +``` \ No newline at end of file diff --git a/docker/build-app.sh b/docker/build-app.sh new file mode 100755 index 0000000..cbbb34a --- /dev/null +++ b/docker/build-app.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -e + +DIR=$(realpath "$( cd "${BASH_SOURCE[0]%/*}" && pwd )") && cd "$DIR" && source ./vars.sh + +TAG="$PROJECT_TAG-app:$PROJECT_VERSION" +FILE=./Dockerfile +CTX=../ + +DOCKER_BUILDKIT=${DOCKER_BUILDKIT} docker build "$DOCKER_BUILDARG" -t "$TAG" -f "$FILE" "$CTX" +#DOCKER_BUILDKIT=1 docker build -t "$TAG" -f "$FILE" "$CTX" \ No newline at end of file diff --git a/docker/build-deps.sh b/docker/build-deps.sh new file mode 100755 index 0000000..8051b43 --- /dev/null +++ b/docker/build-deps.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -e + +DIR=$(realpath "$( cd "${BASH_SOURCE[0]%/*}" && pwd )") && cd "$DIR" && source ./vars.sh + +TAG="$PROJECT_TAG-deps:$PROJECT_VERSION" +FILE=./Dockerfile-deps +CTX=../ + +DOCKER_BUILDKIT=${DOCKER_BUILDKIT} docker build "$DOCKER_BUILDARG" -t "$TAG" -f "$FILE" "$CTX" +#DOCKER_BUILDKIT=1 docker build -t "$TAG" -f "$FILE" "$CTX" \ No newline at end of file diff --git a/docker/build.sh b/docker/build.sh new file mode 100755 index 0000000..0a1af42 --- /dev/null +++ b/docker/build.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -e + +DIR=$(realpath "$( cd "${BASH_SOURCE[0]%/*}" && pwd )") && cd "$DIR" && source ./vars.sh + +./build-deps.sh +./build-app.sh diff --git a/docker/crontab b/docker/crontab new file mode 100644 index 0000000..55e4ead --- /dev/null +++ b/docker/crontab @@ -0,0 +1,3 @@ +## min hour day month weekday command +* * * * * /bin/date --rfc-2822 >> /var/log/cron.log +*/30 * * * * bash /home/node/app/exec-bot.sh >> /var/log/cron.log 2>&1 \ No newline at end of file diff --git a/docker/deps/checks/checks.env b/docker/deps/checks/checks.env new file mode 100644 index 0000000..8b9930e --- /dev/null +++ b/docker/deps/checks/checks.env @@ -0,0 +1,2 @@ +CONTRACT_ADDRESS=0x5FbDB2315678afecb367f032d93F642f64180aa3 +WALLET_ADDRESS=0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 \ No newline at end of file diff --git a/docker/deps/checks/client/node.js b/docker/deps/checks/client/node.js new file mode 100644 index 0000000..540ce27 --- /dev/null +++ b/docker/deps/checks/client/node.js @@ -0,0 +1,31 @@ +// Imports +const ethers = require('ethers'); +const abi = require('../artifacts/contracts/Greeter.sol/Greeter.json').abi; +const config = require('dotenv').config; + +// Config +config(); +const provider = new ethers.ethers.providers.JsonRpcProvider(); +const signer = provider.getSigner(process.env.WALLET_ADDRESS || 'UNKNOWN_WALLET_ADDRESS') +const contract = new ethers.ethers.Contract(process.env.CONTRACT_ADDRESS || 'UNKNOWN_CONTRACT_ADDRESS', abi, signer); + +// Init +const init = async () => { + try { + const result = await contract.greet(); + console.log({ result }); + + const transaction = await contract.setGreeting('Hello from docker!'); + console.log({ transaction }); + + // Wait for transaction to be complete + transaction.wait(); + + // Output result + console.log({ result: await contract.greet() }); + } catch (error) { + console.log({ error }); + } +} + +init(); \ No newline at end of file diff --git a/docker/deps/checks/contracts/Greeter.sol b/docker/deps/checks/contracts/Greeter.sol new file mode 100644 index 0000000..76e3fae --- /dev/null +++ b/docker/deps/checks/contracts/Greeter.sol @@ -0,0 +1,22 @@ +//SPDX-License-Identifier: Unlicense +pragma solidity ^0.8.0; + +import "hardhat/console.sol"; + +contract Greeter { + string private greeting; + + constructor(string memory _greeting) { + console.log("Deploying a Greeter with greeting:", _greeting); + greeting = _greeting; + } + + function greet() public view returns (string memory) { + return greeting; + } + + function setGreeting(string memory _greeting) public { + console.log("Changing greeting from '%s' to '%s'", greeting, _greeting); + greeting = _greeting; + } +} \ No newline at end of file diff --git a/docker/deps/checks/hardhat.config.checks.js b/docker/deps/checks/hardhat.config.checks.js new file mode 100644 index 0000000..bfd3e5d --- /dev/null +++ b/docker/deps/checks/hardhat.config.checks.js @@ -0,0 +1,34 @@ +require("@nomiclabs/hardhat-waffle"); +const fs = require('fs'); +// This is a sample Hardhat task. To learn how to create your own go to +// https://hardhat.org/guides/create-task.html +task("my-deploy", "Deploys contract, get wallets, and outputs files", async (taskArgs, hre) => { + // We get the contract to deploy + const Greeter = await hre.ethers.getContractFactory("Greeter"); + const greeter = await Greeter.deploy("Hello, Hardhat!"); + // Await deployment + await greeter.deployed(); + // Get address + const contractAddress = greeter.address; + // Write file + fs.writeFileSync('./.contract', contractAddress); + // Get generated signer wallets + const accounts = await hre.ethers.getSigners(); + // Get the first wallet address + const walletAddress = accounts[0].address; + // Write file + fs.writeFileSync('./.wallet', walletAddress); +}); +// You need to export an object to set up your config +// Go to https://hardhat.org/config/ to learn more +/** + * @type import('hardhat/config').HardhatUserConfig + */ +module.exports = { + solidity: "0.8.4", + networks: { + hardhat: { + chainId: 1337 + }, + }, +}; \ No newline at end of file diff --git a/docker/deps/checks/hardhat.config.js b/docker/deps/checks/hardhat.config.js new file mode 100644 index 0000000..a90da3c --- /dev/null +++ b/docker/deps/checks/hardhat.config.js @@ -0,0 +1,21 @@ +require("@nomiclabs/hardhat-waffle"); + +// This is a sample Hardhat task. To learn how to create your own go to +// https://hardhat.org/guides/create-task.html +task("accounts", "Prints the list of accounts", async (taskArgs, hre) => { + const accounts = await hre.ethers.getSigners(); + + for (const account of accounts) { + console.log(account.address); + } +}); + +// You need to export an object to set up your config +// Go to https://hardhat.org/config/ to learn more + +/** + * @type import('hardhat/config').HardhatUserConfig + */ +module.exports = { + solidity: "0.8.4", +}; \ No newline at end of file diff --git a/docker/deps/checks/package.json b/docker/deps/checks/package.json new file mode 100644 index 0000000..e860175 --- /dev/null +++ b/docker/deps/checks/package.json @@ -0,0 +1,10 @@ +{ + "name": "docker-deps", + "scripts": { + "start:checks": "./node_modules/.bin/hardhat --config hardhat.config.checks.js node", + "deploy:checks": "./node_modules/.bin/hardhat --config hardhat.config.checks.js my-deploy", + "deploy:checks2": "./node_modules/.bin/hardhat --config hardhat.config.checks.js --network localhost my-deploy", + "test:checks": "./node_modules/.bin/hardhat --config hardhat.config.checks.js test", + "compile:checks": "./node_modules/.bin/hardhat --config hardhat.config.checks.js compile" + } +} \ No newline at end of file diff --git a/docker/deps/checks/scripts/sample-script.js b/docker/deps/checks/scripts/sample-script.js new file mode 100644 index 0000000..c468221 --- /dev/null +++ b/docker/deps/checks/scripts/sample-script.js @@ -0,0 +1,32 @@ +// We require the Hardhat Runtime Environment explicitly here. This is optional +// but useful for running the script in a standalone fashion through `node + + + + diff --git a/src/nodes/node-basic.ts b/src/nodes/node-basic.ts new file mode 100644 index 0000000..89c20de --- /dev/null +++ b/src/nodes/node-basic.ts @@ -0,0 +1,21 @@ +import { NodeProperties, Red } from "node-red"; +import { Node } from "./Node"; + + +module.exports = function(RED: Red) { + class BasicNode extends Node { + constructor(config: NodeProperties) { + super(RED); + const self = this; + + this.createNode(config); + + this.on("input", (msg: any) => { + msg.payload = msg.payload.toLowerCase(); + this.send(msg); + }); + } + } + + BasicNode.registerType(RED, "node-basic"); +}; diff --git a/src/nodes/node-rubymine.html b/src/nodes/node-rubymine.html new file mode 100644 index 0000000..fe91819 --- /dev/null +++ b/src/nodes/node-rubymine.html @@ -0,0 +1,26 @@ + + + + + diff --git a/src/nodes/node-rubymine.ts b/src/nodes/node-rubymine.ts new file mode 100644 index 0000000..4111e4c --- /dev/null +++ b/src/nodes/node-rubymine.ts @@ -0,0 +1,20 @@ +import { NodeProperties, Red } from "node-red"; +import { Node } from "./Node"; + + +module.exports = function(RED: Red) { + class RubymineNode extends Node { + constructor(config: NodeProperties) { + super(RED); + + this.createNode(config); + + this.on("input", (msg: any) => { + msg.payload = msg.payload.toLowerCase(); + this.send(msg); + }); + } + } + + RubymineNode.registerType(RED, "node-rubymine"); +}; \ No newline at end of file diff --git a/src/tasks/AddLiquidityTask.ts b/src/tasks/AddLiquidityTask.ts new file mode 100644 index 0000000..a91d1d9 --- /dev/null +++ b/src/tasks/AddLiquidityTask.ts @@ -0,0 +1,109 @@ +import { EntityRef } from "../classes/Entity"; +import { ContextRef } from "../classes/Context"; +import { Task } from "./Task"; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; +import { execTx } from "../../tasks/tasks"; +import { TaskRegistry } from "../classes/Registry"; +import { BigNumber } from "ethers"; +import { getBalances } from "../../tasks/tasks"; +import { OldMoney } from "../../src/classes/OldMoney"; + +export interface AddLiquidityTaskArgs { + protocol: string, + amount1: BigNumber; + amount2: BigNumber; + token1Address: string; + token2Address: string; +} + +export class AddLiquidityTask extends Task { + + + constructor(obj: { name: string, context: ContextRef, entity: EntityRef; }) { + super({ name: obj.name, context: obj.context, entity: obj.entity }); + } + + public async execute(safeArgs: AddLiquidityTaskArgs): Promise { + + const contract = await this.entity.getContract(); + const registry = new TaskRegistry(); + + const chainObj = this.context.chain; + const chainId = chainObj.id; + const nativeToken = chainObj.nativeToken; + const protocol = registry.findProtocol(safeArgs.protocol); + const protocolId = protocol.id; + + const functionName = protocol.tasks["addliquidity"]; + console.log("functionName:", functionName); + + const fn = contract[functionName]; + + const deadline = Math.floor(Date.now() / 1000) + 60 * 10; + const walletAddress = this.context.address; + const amount1 = safeArgs.amount1; + console.log("amount1: "); + console.log(amount1); + + const amount2 = safeArgs.amount2; + console.log("amount2: "); + console.log(amount2); + + const amount1Min = 0; + const amount2Min = 0; + + const traderJoeABI = registry.findProtocol("traderjoe").ABI + const traderJoeAddress = registry.findProtocol("traderjoe").address + const traderJoeContract = await this.entity.hre.getContractAt(traderJoeABI, traderJoeAddress); + + const token1_obj = registry.findTokenByAddress(safeArgs.token1Address); + const token1_address = token1_obj.address; + const token1_ABI = token1_obj.ABI; + const token1Id = token1_obj.id; + const token1Contract = await this.entity.hre.getContractAt(token1_ABI, token1_address); + + const token2_obj = registry.findTokenByAddress(safeArgs.token2Address); + const token2_address = token2_obj.address; + const token2_ABI = token1_obj.ABI; + const token2Id = token2_obj.id; + const token2Contract = await this.entity.hre.getContractAt(token1_ABI, token2_address); + + const balanceBefore = await getBalances(); + + let logInfo = { + label: `${protocolId}.${functionName}`, + protocol: protocolId, + chainId: chainId, + nativeToken: nativeToken, + run: this.context.run, + action: functionName, + step: 'invoke', + amount: OldMoney.parseAmount(safeArgs.amount1), + asset: token1Id + "-" + token2Id + "-LP", + tx: '' + } + + const approve1 = await execTx(token1Contract.approve(traderJoeAddress, safeArgs.amount1), { + logInfo: logInfo, + log: false, + ledger: true + }, balanceBefore); + // console.log("approve1:", approve1); + + const approve2 = await execTx(token2Contract.approve(traderJoeAddress, safeArgs.amount2), { + logInfo: logInfo, + log: false, + ledger: true + }, balanceBefore); + // console.log("approve2:", approve2); + + logInfo.label = `${safeArgs.protocol}.${functionName}[token1 ${token1Id}][token2 ${token2Id}][amount1 ${amount1}][amount2 ${amount2}]`; + const result = await execTx(traderJoeContract.addLiquidity(token1_address, token2_address, amount1, amount2, amount1Min, amount2Min, walletAddress, deadline), { + logInfo: logInfo, + log: true, + ledger: true + }, balanceBefore); + + return result; + } +} diff --git a/src/tasks/BuyNodeTask.ts b/src/tasks/BuyNodeTask.ts new file mode 100644 index 0000000..849bb28 --- /dev/null +++ b/src/tasks/BuyNodeTask.ts @@ -0,0 +1,97 @@ +import { EntityRef } from "../classes/Entity"; +import { ContextRef } from "../classes/Context"; +import { Task } from "./Task"; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; +import { execTx } from "../../tasks/tasks"; +import { TaskRegistry } from "../classes/Registry"; +import { BigNumber } from "ethers"; +import { getBalances } from "../../tasks/tasks"; +import { OldMoney } from "../../src/classes/OldMoney"; + +export interface BuyNodeTaskArgs { + protocol: string, + node: string, + amount: BigNumber; +} +export class BuyNodeTask extends Task { + + constructor(obj: { name: string, context: ContextRef, entity: EntityRef; }) { + super({ name: obj.name, context: obj.context, entity: obj.entity }); + } + + public async execute(safeArgs: BuyNodeTaskArgs): Promise { + + const contract = await this.entity.getContract(); + const registry = new TaskRegistry(); + + const chainObj = this.context.chain; + const chainId = chainObj.id; + const nativeToken = chainObj.nativeToken; + const protocol = registry.findProtocol(safeArgs.protocol); + const protocolId = protocol.id; + + const functionName = protocol.tasks["buynode"]; + console.log("functionName:", functionName); + + const node = registry.findNode(safeArgs.node); + + const nodeTokenContractAddress = node.token_contract_address; + const nodeContractAddress = node.node_contract_address; + const nodeABI = node.ABI; + const nodeTokenABI = node.TOKEN_ABI; + const nodeTokenContract = await this.entity.hre.getContractAt(nodeTokenABI, nodeTokenContractAddress); + + + //const grapetoken_contract_address = "0x5541D83EFaD1f281571B343977648B75d95cdAC2"; + //const grapeTokenContract = await this.entity.hre.getContractAt(GRAPE_ABI, grapetoken_contract_address); + + //const grapenode_contract_address = "0x4cde1deb1fd11fec61b6e2d322c1520527992196"; + //const grapeNodeContract = await this.entity.hre.getContractAt(GRAPEFINANCENODE_ABI, grapenode_contract_address); + + // const theAmount = this.entity.hre.BigNumber.from("99999999"); + console.log("nodeTokenContractAddress:", nodeTokenContractAddress); + console.log("nodeContractAddress:", nodeContractAddress); + const balanceBefore = await getBalances(); + + let logInfo = { + label: 'nodeContract.approve', + protocol: protocolId, + chainId: chainId, + nativeToken: nativeToken, + run: this.context.run, + action: functionName, + step: 'invoke', + amount: OldMoney.parseAmount(safeArgs.amount), + asset: node.asset, + tx: '' + } + + const approve = await execTx(nodeTokenContract.approve(nodeContractAddress, safeArgs.amount), { + logInfo: logInfo, + log: false, + ledger: true + }, balanceBefore); + // console.log("approve:", approve); + // console.log(approve); + + // uint256[] public tierAllocPoints = [1 ether, 1 ether, 1 ether]; + // uint256[] public tierAmounts = [50 ether, 500 ether, 5000 ether]; + + const fn = contract[functionName]; + // const nodeTier = this.entity.hre.utils.parseEther("1.0"); + const nodeTier = 0; + // const numNodes = this.entity.hre.utils.parseEther("1.0"); + const numNodes = 1; + const args = [nodeTier, numNodes]; + + logInfo.label = `${safeArgs.protocol}.${functionName}[nodeTier ${nodeTier}][numNodes ${numNodes}]`; + + const result = await execTx(await fn.apply(null, args), { + logInfo: logInfo, + log: true, + ledger: true + }, balanceBefore); + + return result; + } +} \ No newline at end of file diff --git a/src/tasks/ClaimTask.ts b/src/tasks/ClaimTask.ts new file mode 100644 index 0000000..ff8ab75 --- /dev/null +++ b/src/tasks/ClaimTask.ts @@ -0,0 +1,58 @@ +import { EntityRef } from "../classes/Entity"; +import { ContextRef } from "../classes/Context"; +import { Task } from "./Task"; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; +import { execTx } from "../../tasks/tasks"; +import { TaskRegistry } from "../classes/Registry"; +import { BigNumber } from "ethers"; +import { getBalances } from "../../tasks/tasks"; +import { OldMoney } from "../../src/classes/OldMoney"; + +export interface ClaimTaskArgs { + protocol: string +} + +export class ClaimTask extends Task{ + + constructor(obj: { name: string, context: ContextRef, entity: EntityRef; }) { + super({ name: obj.name, context: obj.context, entity: obj.entity }); + } + + public async execute(safeArgs: ClaimTaskArgs): Promise { + + const contract = await this.entity.getContract(); + const registry = new TaskRegistry(); + + const chainObj = this.context.chain; + const chainId = chainObj.id; + const nativeToken = chainObj.nativeToken; + const protocol = registry.findProtocol(safeArgs.protocol); + const protocolId = protocol.id; + + const functionName = registry.findProtocol(safeArgs.protocol).tasks["claim"]; + // console.log("functionName:", functionName); + const fn = contract[functionName]; + + let logInfo = { + label: `${safeArgs.protocol}.${this.entity.name}.${functionName}`, + protocol: protocolId, + chainId: chainId, + nativeToken: nativeToken, + run: this.context.run, + action: functionName, + step: 'invoke', + amount: 0, // TO-DO + asset: protocol.yieldAssets[0], + tx: '' + } + + const balanceBefore = await getBalances(); + const result = await execTx(fn.apply(), { + logInfo: logInfo, + log: true, + ledger: true + }, balanceBefore); + + return result; + } +} \ No newline at end of file diff --git a/src/tasks/DepositTask.ts b/src/tasks/DepositTask.ts new file mode 100644 index 0000000..4358f44 --- /dev/null +++ b/src/tasks/DepositTask.ts @@ -0,0 +1,101 @@ +import { EntityRef } from "../classes/Entity"; +import { ContextRef } from "../classes/Context"; +import { Task } from "./Task"; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; +import { execTx } from "../../tasks/tasks"; +import { TaskRegistry } from "../classes/Registry"; +import { BigNumber } from "ethers"; +import { getBalances } from "../../tasks/tasks"; +import { OldMoney } from "../../src/classes/OldMoney"; + +export interface DepositTaskArgs { + protocol: string, + amount: BigNumber; + liquidityPair: string; +} + +export class DepositTask extends Task { + + constructor(obj: { name: string, context: ContextRef, entity: EntityRef; }) { + super({ name: obj.name, context: obj.context, entity: obj.entity }); + } + + public async execute(safeArgs: DepositTaskArgs): Promise { + + const contract = await this.entity.getContract(); + + const registry = new TaskRegistry(); + + const chainObj = this.context.chain; + const chainId = chainObj.id; + const nativeToken = chainObj.nativeToken; + const protocol = registry.findProtocol(safeArgs.protocol); + const protocolId = protocol.id; + + const functionName = registry.findProtocol(safeArgs.protocol).tasks["stake"]; + console.log("functionName:", functionName); + + const poolAddress = registry.findProtocol(safeArgs.protocol).address; + console.log("poolAddres: "); + console.log(poolAddress); + + const lpToken = registry.findToken(safeArgs.liquidityPair); + const lpTokenAddress = lpToken.address; + const lpTokenAbi = lpToken.ABI; + const lpContract = await this.entity.hre.getContractAt(lpTokenAbi, lpTokenAddress); + + const amount = safeArgs.amount; + const balanceBefore = await getBalances(); + + let logInfo = { + label: `approve ${safeArgs.protocol}.${functionName}`, + protocol: protocolId, + chainId: chainId, + nativeToken: nativeToken, + run: this.context.run, + action: functionName, + step: 'invoke', + amount: OldMoney.parseAmount(safeArgs.amount), + asset: lpToken.asset, + tx: '' + } + + + const approve = await execTx(lpContract.approve(poolAddress, amount), { + logInfo: logInfo, + log: false, + ledger: true + }, balanceBefore); + + + console.log("approve:"); + console.log(approve); + + // const fn = contract[functionName]; + + const args = [poolAddress, safeArgs.amount]; + + console.log("args: "); + console.log(args); + + let poolId = 0; + if (safeArgs.liquidityPair === "grape-mim-lp") { + poolId = 0; + } else if (safeArgs.liquidityPair === "mim-wine-lp") { + poolId = 1; + } else if (safeArgs.liquidityPair === "grape-wine-lp") { + poolId = 2; + } else { + throw new Error("need to know and set the poolId for this liquidity Pair"); + } + + logInfo.label = `${safeArgs.protocol}.${functionName}[LP ${safeArgs.liquidityPair}]`; + const result = await execTx(await contract.deposit(poolId, safeArgs.amount), { + logInfo: logInfo, + log: true, + ledger: true + }, balanceBefore); + + return result; + } +} \ No newline at end of file diff --git a/src/tasks/PoolClaimTask.ts b/src/tasks/PoolClaimTask.ts new file mode 100644 index 0000000..8d92fb9 --- /dev/null +++ b/src/tasks/PoolClaimTask.ts @@ -0,0 +1,65 @@ +import { EntityRef } from "../classes/Entity"; +import { ContextRef } from "../classes/Context"; +import { Task } from "./Task"; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; +import { execTx } from "../../tasks/tasks"; +import { TaskRegistry } from "../classes/Registry"; +import { BigNumber } from "ethers"; +import { getBalances } from "../../tasks/tasks"; +import { OldMoney } from "../../src/classes/OldMoney"; + +export interface PoolClaimTaskArgs { + protocol: string, + pool: string, + amount: BigNumber; +} + +export class PoolClaimTask extends Task { + + constructor(obj: { name: string, context: ContextRef, entity: EntityRef; }) { + super({ name: obj.name, context: obj.context, entity: obj.entity }); + } + + public async execute(safeArgs: PoolClaimTaskArgs): Promise { + + const contract = await this.entity.getContract(); + const registry = new TaskRegistry(); + + const chainObj = this.context.chain; + const chainId = chainObj.id; + const nativeToken = chainObj.nativeToken; + const protocol = registry.findProtocol(safeArgs.protocol); + const protocolId = protocol.id; + + const functionName = registry.findProtocol(safeArgs.protocol).tasks["poolclaim"]; + console.log("functionName:", functionName); + // const fn = contract[functionName]; + + const poolObject = registry.findPool(safeArgs.pool); + const poolName = poolObject.id; + const pid = poolObject.pid; + + const balanceBefore = await getBalances(); + + let logInfo = { + label: `${safeArgs.protocol}.${functionName}[pid ${pid}-${poolName}]`, + protocol: protocolId, + chainId: chainId, + nativeToken: nativeToken, + run: this.context.run, + action: functionName, + step: 'invoke', + amount: OldMoney.parseAmount(safeArgs.amount), + asset: protocol.yieldAssets[0], + tx: '' + } + + const result = await execTx(await contract.withdraw(pid, safeArgs.amount), { + logInfo: logInfo, + log: true, + ledger: true + }, balanceBefore); + + return result; + } +} diff --git a/src/tasks/RemoveLiquidityTask.ts b/src/tasks/RemoveLiquidityTask.ts new file mode 100644 index 0000000..987cf75 --- /dev/null +++ b/src/tasks/RemoveLiquidityTask.ts @@ -0,0 +1,94 @@ +import { EntityRef } from "../classes/Entity"; +import { ContextRef } from "../classes/Context"; +import { Task } from "./Task"; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; +import { execTx } from "../../tasks/tasks"; +import { TaskRegistry } from "../classes/Registry"; +import { BigNumber } from "ethers"; +import { getBalances } from "../../tasks/tasks"; +import { OldMoney } from "../../src/classes/OldMoney"; + +export interface RemoveLiquidityTaskArgs { + protocol: string, + amount: BigNumber; + token1Address: string; + token2Address: string; + liquidityPair: string; +} +export class RemoveLiquidityTask extends Task { + + constructor(obj: { name: string, context: ContextRef, entity: EntityRef; }) { + super({ name: obj.name, context: obj.context, entity: obj.entity }); + } + + public async execute(safeArgs: RemoveLiquidityTaskArgs): Promise { + const contract = await this.entity.getContract(); + const registry = new TaskRegistry(); + const chainObj = this.context.chain; + const chainId = chainObj.id; + const nativeToken = chainObj.nativeToken; + const protocol = registry.findProtocol(safeArgs.protocol); + const protocolId = protocol.id; + + const functionName = registry.findProtocol(safeArgs.protocol).tasks["removeLiquidity"]; + // console.log("functionName:", functionName); + + const fn = contract[functionName]; + + const deadline = Math.floor(Date.now() / 1000) + 60 * 10; + const walletAddress = this.context.address; + const amountOutMin = 0; + const amount = safeArgs.amount; + // console.log("amount: ", amount); + + const amount1Min = 0; + const amount2Min = 0; + + const token1_address = safeArgs.token1Address; + const token2_address = safeArgs.token2Address; + + const traderJoeABI = registry.findProtocol("traderjoe").ABI + const traderJoeAddress = registry.findProtocol("traderjoe").address + const traderJoeContract = await this.entity.hre.getContractAt(traderJoeABI, traderJoeAddress); + + // console.log("traderJoeContract:", traderJoeContract); + // console.log("safeArgs.liquidityPair: ", safeArgs.liquidityPair); + + const lp = registry.findToken(safeArgs.liquidityPair); + const pairContract = await this.entity.hre.getContractAt(lp.ABI, lp.address); + // console.log("pairContract: ", pairContract); + + const balanceBefore = await getBalances(); + + + + let logInfo = { + label: `approve ${safeArgs.protocol}.${functionName}`, + protocol: protocolId, + chainId: chainId, + nativeToken: nativeToken, + run: this.context.run, + action: functionName, + step: 'invoke', + amount: OldMoney.parseAmount(safeArgs.amount), + asset: protocol.yieldAssets[0], + tx: '' + } + + const approve = await execTx(pairContract.approve(traderJoeAddress, amount), { + logInfo: logInfo, + log: false, + ledger: true + }, balanceBefore); + // console.log("approve:", approve); + + logInfo.label = `${safeArgs.protocol}.${functionName}[LP ${lp.id}]`; + const result = await execTx(traderJoeContract.removeLiquidity(token1_address, token2_address, amount, amount1Min, amount2Min, walletAddress, deadline), { + logInfo: logInfo, + log: true, + ledger: true + }, balanceBefore); + + return result; + } +} \ No newline at end of file diff --git a/src/tasks/StakeTask.ts b/src/tasks/StakeTask.ts new file mode 100644 index 0000000..63b797a --- /dev/null +++ b/src/tasks/StakeTask.ts @@ -0,0 +1,137 @@ +import { EntityRef } from "../classes/Entity"; +import { ContextRef } from "../classes/Context"; +import { Task } from "./Task"; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; +import { execTx } from "../../tasks/tasks"; +import { TaskRegistry } from "../classes/Registry"; +import { BigNumber } from "ethers"; +import { getBalances } from "../../tasks/tasks"; +import { OldMoney } from "../../src/classes/OldMoney"; + +export interface StakeTaskArgs { + protocol: string, + token: string, + amount: BigNumber; +} + +export class StakeTask extends Task { + + constructor(obj: { name: string, context: ContextRef, entity: EntityRef; }) { + super({ name: obj.name, context: obj.context, entity: obj.entity }); + } + + // public override async execute(safeArgs: { protocol: string, amount: number; }) { + public async execute(safeArgs: StakeTaskArgs): Promise { + + const registry = new TaskRegistry(); + const chainObj = this.context.chain; + const chainId = chainObj.id; + const nativeToken = chainObj.nativeToken; + const protocol = registry.findProtocol(safeArgs.protocol); + const protocolId = protocol.id; + + const balanceBefore = await getBalances(); + + // console.log(`balanceBefore[${tokenin_obj.id.toUpperCase()}]["amount"]:`,balanceBefore[tokenin_obj.id.toUpperCase()]["amount"]); + // console.log('Money.parseAmount(amount):',Money.parseAmount(amount)); + + const tokenId = registry.findToken(safeArgs.token).id; + + if (balanceBefore["wallet"][tokenId.toUpperCase()]["amount"] > OldMoney.parseAmount(safeArgs.amount)) { + + const functionName = registry.findProtocol(safeArgs.protocol).tasks["stake"]; + console.log("functionName:", functionName); + + + const contractAddress = registry.findProtocol(safeArgs.protocol).address; + const contractABI = registry.findProtocol(safeArgs.protocol).ABI; + const contract = await this.entity.hre.getContractAt(contractABI, contractAddress); + + // console.log("contractAddress:", contractAddress); + // console.log("contract:", contract); + + const tokenObject = registry.findToken(safeArgs.token); + const tokenAddress = tokenObject.address; + const tokenABI = registry.findToken(safeArgs.token).ABI; + const tokenContract = await this.entity.hre.getContractAt(tokenABI, tokenAddress); + + const balanceBefore = await getBalances(); + const amount = safeArgs.amount; + // const theAmount = this.entity.hre.BigNumber.from(safeArgs.amount); + + let logInfo = { + label: `approve ${safeArgs.protocol}.${functionName}`, + protocol: protocolId, + chainId: chainId, + nativeToken: nativeToken, + run: this.context.run, + action: functionName, + step: 'approve', + amount: OldMoney.parseAmount(safeArgs.amount), + asset:tokenObject.id, + tx: '' + } + + + + + const approve1 = await execTx(tokenContract.approve(contractAddress, safeArgs.amount), { + logInfo: logInfo, + log: false, + ledger: true + }, balanceBefore); + + console.log("approve1:"); + console.log(approve1); + + let poolId = 0; + + let result:any; + + logInfo = { + label: `${safeArgs.protocol}.${functionName}`, + protocol: protocolId, + chainId: chainId, + nativeToken: nativeToken, + run: this.context.run, + action: functionName, + step: 'invoke', + amount: OldMoney.parseAmount(safeArgs.amount), + asset:tokenObject.id, + tx: '' + } + + if(safeArgs.protocol === 'grapefinance-vineyard'){ + poolId = 3; + + logInfo.label = `${safeArgs.protocol}.${functionName}`; + + result = await execTx(await contract.deposit(3, safeArgs.amount), { + logInfo: logInfo, + log: true, + ledger: true + }, balanceBefore); + + }else if(safeArgs.protocol === 'grapefinance-winery'){ + + logInfo.label = `${safeArgs.protocol}.${functionName}[tokenInAmount ${amount}]`; + result = await execTx(await contract.stake(safeArgs.amount), { + logInfo: logInfo, + log: true, + ledger: true + }, balanceBefore); + } + + + + + + + return result; + } else { + + throw `Custom error: Hey, there's not enough funds. Available: ${tokenId.toUpperCase()} ${balanceBefore["wallet"][tokenId.toUpperCase()]["amount"]}, requested: ${tokenId.toUpperCase()} ${OldMoney.parseAmount(safeArgs.amount)}` + } + } +} + diff --git a/src/tasks/SwapNativeTask.ts b/src/tasks/SwapNativeTask.ts new file mode 100644 index 0000000..2480060 --- /dev/null +++ b/src/tasks/SwapNativeTask.ts @@ -0,0 +1,81 @@ +import { EntityRef } from "../classes/Entity"; +import { ContextRef } from "../classes/Context"; +import { Task } from "./Task"; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; +import { execTx } from "../../tasks/tasks"; +import { TaskRegistry } from "../classes/Registry"; +import { BigNumber } from "ethers"; +import { getBalances } from "../../tasks/tasks"; +import { OldMoney } from "../../src/classes/OldMoney"; + +interface SwapNativeTaskArgs { + protocol: string, + amount: BigNumber; + tokenInAddress: string; + tokenOutAddress: string; +} + +export class SwapNativeTask extends Task { + + constructor(obj: { name: string, context: ContextRef, entity: EntityRef; }) { + super({ name: obj.name, context: obj.context, entity: obj.entity }); + } + + public async execute(safeArgs: SwapNativeTaskArgs): Promise { + + const contract = await this.entity.getContract(); + const registry = new TaskRegistry(); + const chainObj = this.context.chain; + const chainId = chainObj.id; + const nativeToken = chainObj.nativeToken; + const protocol = registry.findProtocol(safeArgs.protocol); + const protocolId = protocol.id; + + const functionName = new TaskRegistry().findProtocol(safeArgs.protocol).tasks["swapnative"]; + console.log("functionName:", functionName); + + const fn = contract[functionName]; + const tokenInObj = registry.findTokenByAddress(safeArgs.tokenInAddress); + const tokenInId = tokenInObj.id; + const tokenInAddress = safeArgs.tokenInAddress; + + const tokenOutObj = registry.findTokenByAddress(safeArgs.tokenOutAddress); + const tokenOutId = tokenOutObj.id; + const tokenOutAddress = safeArgs.tokenOutAddress; + const deadline = Math.floor(Date.now() / 1000) + 60 * 10; + const walletAddress = this.context.address; + const amountOutMin = 0; // Degen ape don't give a f about slippage; + const amount = safeArgs.amount; + + let logInfo = { + label: `${safeArgs.protocol}.${functionName}`, + protocol: protocolId, + chainId: chainId, + nativeToken: nativeToken, + run: this.context.run, + action: functionName, + step: 'approve', + amount: OldMoney.parseAmount(safeArgs.amount), + asset:tokenInId, + tx: '' + } + + + + const args = [amountOutMin, [tokenInAddress, tokenOutAddress], walletAddress, deadline, { + // ...gas, + value: amount + }]; + + logInfo.label = `${safeArgs.protocol}.${functionName}[tokenInAmount ${amount}][tokenIn ${tokenInId}][tokenOut ${tokenOutId}]`; + + const balanceBefore = await getBalances(); + const result = await execTx(fn.apply(null, args), { + logInfo: logInfo, + log: true, + ledger: true + }, balanceBefore); + + return result; + } +} \ No newline at end of file diff --git a/src/tasks/SwapTokensTask.ts b/src/tasks/SwapTokensTask.ts new file mode 100644 index 0000000..2f173fa --- /dev/null +++ b/src/tasks/SwapTokensTask.ts @@ -0,0 +1,118 @@ +import { EntityRef } from "../classes/Entity"; +import { ContextRef } from "../classes/Context"; +import { Task } from "./Task"; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; +import { execTx } from "../../tasks/tasks"; +import { TaskRegistry } from "../classes/Registry"; +import { BigNumber, ethers } from "ethers"; +import { getBalances } from "../../tasks/tasks"; +import {OldMoney} from "../classes/OldMoney"; + +export interface SwapTokensTaskArgs { + protocol: string, + amount: BigNumber; + tokenInAddress: string; + tokenOutAddress: string; +} + +export class SwapTokensTask extends Task{ + + constructor(obj: { name: string, context: ContextRef, entity: EntityRef; }) { + super({ name: obj.name, context: obj.context, entity: obj.entity }); + } + + public async execute(safeArgs: SwapTokensTaskArgs): Promise { + + const contract = await this.entity.getContract(); + const registry = new TaskRegistry(); + const chainObj = this.context.chain; + const chainId = chainObj.id; + const nativeToken = chainObj.nativeToken; + const protocol = registry.findProtocol(safeArgs.protocol); + const protocolId = protocol.id; + + const functionName = registry.findProtocol(safeArgs.protocol).tasks["swaptokens"]; + console.log("functionName:", functionName); + + const fn = contract[functionName]; + const tokenInAddress = safeArgs.tokenInAddress; + const tokenOutAddress = safeArgs.tokenOutAddress; + + const tokenIn = tokenInAddress; + const tokenOut = tokenOutAddress; + const deadline = Math.floor(Date.now() / 1000) + 60 * 10; + const walletAddress = this.context.address; + const amountOutMin = 0; // Degen ape don't give a f about slippage; + + const amountApprove = BigNumber.from(safeArgs.amount).mul(BigNumber.from("1000")); + const amount = BigNumber.from(safeArgs.amount); + // console.log("amount: "); + // console.log(amount); + + const traderJoeABI = registry.findProtocol("traderjoe").ABI + const traderJoeAddress = registry.findProtocol("traderjoe").address + const traderJoeContract = await this.entity.hre.getContractAt(traderJoeABI, traderJoeAddress); + + + const tokenInObj = registry.findTokenByAddress(safeArgs.tokenInAddress); + const tokenInId = tokenInObj.id; + const tokenInABI = tokenInObj.ABI; + const tokenInContract = await this.entity.hre.getContractAt(tokenInABI, tokenInAddress); + + const balanceBefore = await getBalances(); + + // console.log(`balanceBefore[${tokenin_obj.id.toUpperCase()}]["amount"]:`,balanceBefore[tokenin_obj.id.toUpperCase()]["amount"]); + // console.log('Money.parseAmount(amount):',Money.parseAmount(amount)); + + let logInfo = { + label: `approve ${safeArgs.protocol}.${functionName}`, + protocol: protocolId, + chainId: chainId, + nativeToken: nativeToken, + run: this.context.run, + action: functionName, + step: 'approve', + amount: OldMoney.parseAmount(safeArgs.amount), + asset:tokenInObj.id, + tx: '' + } + + + logInfo.label = `approve ${safeArgs.protocol}.${functionName}`; + + if(balanceBefore["wallet"][tokenInObj.id.toUpperCase()]["amount"] > OldMoney.parseAmount(amount)){ + + const approveIn = await execTx(tokenInContract.approve(traderJoeAddress, amountApprove), { + logInfo: logInfo, + log: false, + ledger: true + }, balanceBefore); + // console.log("approveIn:", approveIn); + + const tokenout_obj = registry.findTokenByAddress(safeArgs.tokenOutAddress); + const tokenout_id = tokenout_obj.id; + const tokenout_address = tokenout_obj.address; + + const args = [amount, amountOutMin, [tokenIn, tokenOut], walletAddress, deadline]; + + console.log("args: ", args); + + // const result = await fn.apply(null, args); + + logInfo.label = `${safeArgs.protocol}.${functionName}[tokenInAmount ${amount}][tokenIn ${tokenInId}][tokenOut ${tokenout_id}]`; + logInfo.step = 'invoke'; + + const result = await execTx(traderJoeContract.swapExactTokensForTokens(amount, 0, [tokenInAddress, tokenout_address], walletAddress, deadline), { + logInfo: logInfo, + log: true, + ledger: true + }, balanceBefore); + + return result; + }else{ + + throw `Custom error: Hey, there's not enough funds. Available: ${tokenInObj.id.toUpperCase()} ${balanceBefore["wallet"][tokenInObj.id.toUpperCase()]["amount"]}, requested: ${tokenInObj.id.toUpperCase()} ${OldMoney.parseAmount(amount)}` + } + + } +} \ No newline at end of file diff --git a/src/tasks/Task.ts b/src/tasks/Task.ts new file mode 100644 index 0000000..39033f8 --- /dev/null +++ b/src/tasks/Task.ts @@ -0,0 +1,54 @@ +import { Entity } from '../classes/Entity'; +import { EntityRef } from '../classes/Entity'; +import { Context } from '../classes/Context'; +import { ContextRef } from '../classes/Context'; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; + +export interface TaskArgs { + name: string, + context: ContextRef, + entity: EntityRef; +} + +//region Tasks +export class Task { + public safeArgs: TSafeArgs | undefined; + private readonly name: string; + protected context: Context; + protected entity: Entity; + + constructor(obj: TaskArgs) { + this.name = obj.name; + this.context = Context.fromRef(obj.context); + this.entity = Entity.fromRef(obj.entity, obj.context); + const chainObj = this.context.chain; + const chainId = chainObj.id; + const nativeToken = chainObj.nativeToken; + + + // this.context = Context.fromRef({address: obj.context.address, provider: obj.context.provider}); + // ASDF.fromASDF(obj.entity, this.context) + this.entity = Entity.fromRef(obj.entity, this.context); + // this.entity = Entity.fromRef({ABI: obj.entity.ABI, address: obj.entity.address, context: this.context}); + // this.entity = new Entity({ABI: obj.entity.ABI, address: obj.entity.address, context: this.context}); + + } + + public getName() { + return this.name; + } + + public getContext() { + return this.context; + } + + public getEntity() { + return this.entity; + } + + public async execute(safeArgs: TSafeArgs): Promise { + // public async execute(safeArgs: { protocol: string, amount: number; }) { + // hre.ethers.provider.getBalance(account1.address); + return Promise.reject(new Error(`not implemented`)); + } +} \ No newline at end of file diff --git a/src/tasks/WithdrawTask.ts b/src/tasks/WithdrawTask.ts new file mode 100644 index 0000000..faa336d --- /dev/null +++ b/src/tasks/WithdrawTask.ts @@ -0,0 +1,61 @@ +import { EntityRef } from "../classes/Entity"; +import { ContextRef } from "../classes/Context"; +import { Task } from "./Task"; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; +import { execTx } from "../../tasks/tasks"; +import { TaskRegistry } from "../classes/Registry"; +import { BigNumber } from "ethers"; +import { getBalances } from "../../tasks/tasks"; +import { OldMoney } from "../../src/classes/OldMoney"; + +export interface WithdrawTaskArgs { + protocol: string, + amount: BigNumber; +} + +export class WithdrawTask extends Task{ + + constructor(obj: { name: string, context: ContextRef, entity: EntityRef; }) { + super({ name: obj.name, context: obj.context, entity: obj.entity }); + } + + public async execute(safeArgs: WithdrawTaskArgs): Promise { + + const contract = await this.entity.getContract(); + const registry = new TaskRegistry(); + + const chainObj = this.context.chain; + const chainId = chainObj.id; + const nativeToken = chainObj.nativeToken; + const protocol = registry.findProtocol(safeArgs.protocol); + const protocolId = protocol.id; + + const functionName = registry.findProtocol(safeArgs.protocol).tasks["withdraw"]; + console.log("functionName:", functionName); + + const fn = contract[functionName]; + const args = [safeArgs.amount]; + + let logInfo = { + label: `${safeArgs.protocol}.${functionName}[amount ${safeArgs.amount}]`, + protocol: protocolId, + chainId: chainId, + nativeToken: nativeToken, + run: this.context.run, + action: functionName, + step: 'invoke', + amount: OldMoney.parseAmount(safeArgs.amount), + asset: protocol.depositAssets[0], + tx: '' + } + + const balanceBefore = await getBalances(); + const result = await execTx(fn.apply(null, args), { + logInfo: logInfo, + log: true, + ledger: true + }, balanceBefore); + + return result; + } +} \ No newline at end of file diff --git a/src/test.sol b/src/test.sol new file mode 100644 index 0000000..e69de29 diff --git a/tasks/tasks.backup b/tasks/tasks.backup new file mode 100644 index 0000000..1877b81 --- /dev/null +++ b/tasks/tasks.backup @@ -0,0 +1,894 @@ +import { task } from "hardhat/config"; +import * as dotenv from "dotenv"; +import * as fs from "fs"; +import { SignerWithAddress } from "hardhat-deploy-ethers/src/signers"; +import { BigNumber } from "ethers"; +import { ContractTransaction } from "@ethersproject/contracts"; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; +import ERC20_ABI from "../ABI/ERC20.json"; +import TRADERJOE_ABI from "../ABI/TraderJoe.json"; +import { TaskRegistry } from "../src/classes/Registry"; +import { SwapNativeTask } from "../src/tasks/SwapNativeTask"; +import { SwapTokensTask } from "../src/tasks/SwapTokensTask"; +import { AddLiquidityTask } from "../src/tasks/AddLiquidityTask"; +import { RemoveLiquidityTask } from "../src/tasks/RemoveLiquidityTask"; +import { ClaimTask } from "../src/tasks/ClaimTask"; +import { PoolClaimTask } from "../src/tasks/PoolClaimTask"; +import { BuyNodeTask } from "../src/tasks/BuyNodeTask"; +import { DepositTask } from "../src/tasks/DepositTask"; +import { StakeTask } from "../src/tasks/StakeTask"; +import { Money } from "../src/classes/Money"; +import { EnvUtil } from "../src/classes/EnvUtil"; + +dotenv.config(); + +//region CONSTANTS +const FLOW_04_TASK_01_MIN_AMOUNT_OF_MIM_TO_START: string = process.env.FLOW_04_TASK_01_MIN_AMOUNT_OF_MIM_TO_START as string; +const FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_REWARDS_TO_START: string = process.env.FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_REWARDS_TO_START as string; +const FLOW_04_TASK_01_DO_WE_CLAIM_ALL: string = process.env.FLOW_04_TASK_01_DO_WE_CLAIM_ALL as string; +const FLOW_04_TASK_01_AMOUNT_OF_WINE_TO_CLAIM: string = process.env.FLOW_04_TASK_01_AMOUNT_OF_WINE_TO_CLAIM as string; +const FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_GRAPE_LP: string = process.env.FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_GRAPE_LP as string; +const FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_MIM_LP: string = process.env.FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_MIM_LP as string; +const FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_IN_WALLET: string = process.env.FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_IN_WALLET as string; +//endregion + +let ethers: any = null; + +function callback() { + console.log("json file updated succesfully."); +} + +function setEnvironment(hre: any) { + ethers = hre.ethers; +} + +async function getAccount() { + + let account1: SignerWithAddress; + const accounts = await ethers.getSigners(); + + // @ts-ignore + if (accounts.length > 0) { + account1 = accounts[0]; + } else { + throw new Error("no accounts found by ethers.getSigners()"); + } + + return account1; + +} + +export async function execTx(tx: Promise | ContractTransaction, options: { log: boolean | undefined, label: string | undefined; } = { + log: true, + label: undefined +}): Promise { + const before = await getBalances(); + const result = await (await tx).wait(); + const after = await getBalances(); + const delta = await getDelta(before, after); + + + options.log && console.log(`execTx`, { + before, + result, + after, + delta + }); + + return result; +} + +function updateBalances(dataObj: object) { + console.log("updatingBalances..."); + + fs.readFile("../db/balances.json", "utf8", function readFileCallback(err, data) { + if (err) { + console.log(err); + } else { + const jsonObj = JSON.parse(data); // convert to object + console.log("jsonObj: "); + console.log(jsonObj); + console.log("dataObj: "); + console.log(dataObj); + const json = JSON.stringify(jsonObj); // convert it back to json + fs.writeFile("balances.json", json, "utf8", callback); // write it back + } + }); +} + +// context == application state / wallet state / connection to chain + +const registry = new TaskRegistry(); + +async function claimExecutor(task: ClaimTask, safeArgs: { protocol: string, amount: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + + await task.execute({ protocol: safeArgs.protocol, amount: safeArgs.amount }); +} + +async function swapNativeExecutor(task: SwapNativeTask, safeArgs: { protocol: string, tokenInAddress: string, tokenOutAddress: string, amount: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + await task.execute({ + protocol: safeArgs.protocol, + tokenInAddress: safeArgs.tokenInAddress, + tokenOutAddress: safeArgs.tokenOutAddress, + amount: safeArgs.amount + }); +} + +async function swapTokensExecutor(task: SwapTokensTask, safeArgs: { protocol: string, tokenInAddress: string, tokenOutAddress: string, amount: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + await task.execute({ + protocol: safeArgs.protocol, + tokenInAddress: safeArgs.tokenInAddress, + tokenOutAddress: safeArgs.tokenOutAddress, + amount: safeArgs.amount + }); +} + +async function addLiquidityExecutor(task: AddLiquidityTask, safeArgs: { protocol: string, token1Address: string, token2Address: string, amount1: BigNumber, amount2: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + await task.execute({ + protocol: safeArgs.protocol, + token1Address: safeArgs.token1Address, + token2Address: safeArgs.token2Address, + amount1: safeArgs.amount1, + amount2: safeArgs.amount2 + }); +} + +async function poolclaimExecutor( + task: PoolClaimTask, + safeArgs: { + protocol: string, pool: string, amount: BigNumber; + }) { + + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + await task.execute({ + protocol: safeArgs.protocol, + pool: safeArgs.pool, + amount: safeArgs.amount + }); +} + +async function removeLiquidityExecutor(task: RemoveLiquidityTask, safeArgs: { protocol: string, token1Address: string, token2Address: string, liquidityPair: string, amount: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + await task.execute({ + protocol: safeArgs.protocol, + token1Address: safeArgs.token1Address, + token2Address: safeArgs.token2Address, + liquidityPair: safeArgs.liquidityPair, + amount: safeArgs.amount + }); +} + +async function stakeExecutor(task: StakeTask, safeArgs: { protocol: string, amount: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + await task.execute({ protocol: safeArgs.protocol, amount: safeArgs.amount }); +} + +async function depositExecutor(task: DepositTask, safeArgs: { protocol: string, amount: BigNumber; liquidityPair: string; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + const tx = await task.execute({ + protocol: safeArgs.protocol, + amount: safeArgs.amount, + liquidityPair: safeArgs.liquidityPair + }); + + // await tx.wait(); +} + +async function buyNodeExecutor(task: BuyNodeTask, safeArgs: { protocol: string, node: string, amount: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + await task.execute({ protocol: safeArgs.protocol, node: safeArgs.node, amount: safeArgs.amount }); +} + + +async function checkFunds(address: string) { + + const accounts = await ethers.provider.listAccounts(); + console.log("accounts: "); + console.log(accounts); + console.log("checking available funds..."); + console.log("wallet address:", address); + const balance = await ethers.provider.getBalance(address); + const balanceFmt = ethers.utils.formatEther(balance); + console.log("balance:", balanceFmt); +} + + +interface balances{ + [key:string]: number, +} +async function getBalances():Promise{ + const account: SignerWithAddress = await getAccount(); + + const grapeTokenAddress = registry.findToken("grape").address; + const wineTokenAddress = registry.findToken("wine").address; + const mimTokenAddress = registry.findToken("mim").address; + const grapeWineLPTokenAddress = registry.findToken("grape-wine-lp").address; + const mimWineLPTokenAddress = registry.findToken("mim-wine-lp").address; + const grapeMIMLPTokenAddress = registry.findToken("grape-mim-lp").address; + + const grapeTokenContract = await ethers.getContractAt(ERC20_ABI, grapeTokenAddress); + const wineTokenContract = await ethers.getContractAt(ERC20_ABI, wineTokenAddress); + const mimTokenContract = await ethers.getContractAt(ERC20_ABI, mimTokenAddress); + const grapeMIMLPTokenContract = await ethers.getContractAt(ERC20_ABI, grapeMIMLPTokenAddress); + const grapeWineLPTokenContract = await ethers.getContractAt(ERC20_ABI, grapeWineLPTokenAddress); + const mimWineLPTokenContract = await ethers.getContractAt(ERC20_ABI, mimWineLPTokenAddress); + + let avaxTokenBalance = await ethers.provider.getBalance(account.address); + avaxTokenBalance = Money.parseAmount(avaxTokenBalance); + + let mimTokenBalance = await mimTokenContract.balanceOf(account.address); + mimTokenBalance = Money.parseAmount(mimTokenBalance); + + let grapeTokenBalance = await grapeTokenContract.balanceOf(account.address); + grapeTokenBalance = Money.parseAmount(grapeTokenBalance); + + let wineTokenBalance = await wineTokenContract.balanceOf(account.address); + wineTokenBalance = Money.parseAmount(wineTokenBalance); + + let grapeMIMLPTokenBalance = await grapeMIMLPTokenContract.balanceOf(account.address); + grapeMIMLPTokenBalance = Money.parseAmount(grapeMIMLPTokenBalance); + + let grapeWineLPTokenBalance = await grapeWineLPTokenContract.balanceOf(account.address); + grapeWineLPTokenBalance = Money.parseAmount(grapeWineLPTokenBalance); + + let mimWineLPTokenBalance = await mimWineLPTokenContract.balanceOf(account.address); + mimWineLPTokenBalance = Money.parseAmount(mimWineLPTokenBalance); + + return { + AVAX: avaxTokenBalance, + GRAPE: grapeTokenBalance, + MIM: mimTokenBalance, + WINE: wineTokenBalance, + GRAPE_MIM_LP: grapeMIMLPTokenBalance, + GRAPE_WINE_LP: grapeWineLPTokenBalance, + MIM_WINE_LP: mimWineLPTokenBalance, + }; +} +async function getDelta(before: balances, after: balances){ + let delta: {[key: string]:any} = {} + for (const key in before) { + delta[key] = after[key] - before[key]; + } + return delta +} + +task("checkfunds", "execute task CHeck Funds") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + const account: SignerWithAddress = await getAccount(); + await checkFunds(account.address); + + }); + +task("claim", "execute task Claim") + .addParam("protocol", "protocol to be operated with") + .addParam("amount", "amount to claim") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + amount: taskArgs["amount"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = Money.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeArgs = { + protocol: safeProtocolId, amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + await claimExecutor(new ClaimTask({ + name: "claim", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgs); + }); + +task("swapnative", "execute task Swap Native") + .addParam("protocol", "protocol to be operated with") + .addParam("tokenin", "token-in name") + .addParam("tokenout", "token-out name") + .addParam("amount", "amount of tokens to swap") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + amount: taskArgs["amount"], + tokenin: taskArgs["tokenin"], + tokenout: taskArgs["tokenout"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = Money.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeTokenInAddress = registry.findToken(unsafeArgs.tokenin).address; + const safeTokenOutAddress = registry.findToken(unsafeArgs.tokenout).address; + const safeArgs = { + protocol: safeProtocolId, + tokenInAddress: safeTokenInAddress, + tokenOutAddress: safeTokenOutAddress, + amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + await swapNativeExecutor(new SwapNativeTask({ + name: "swapnative", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgs); + }); + +task("swaptokens", "execute task Swap Tokens") + .addParam("protocol", "protocol to be operated with") + .addParam("tokenin", "token-in name") + .addParam("tokenout", "token-out name") + .addParam("amount", "amount of tokens to swap") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + amount: taskArgs["amount"], + tokenin: taskArgs["tokenin"], + tokenout: taskArgs["tokenout"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = Money.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeTokenInAddress = registry.findToken(unsafeArgs.tokenin).address; + const safeTokenOutAddress = registry.findToken(unsafeArgs.tokenout).address; + const safeArgs = { + protocol: safeProtocolId, + tokenInAddress: safeTokenInAddress, + tokenOutAddress: safeTokenOutAddress, + amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + await swapTokensExecutor(new SwapTokensTask({ + name: "swaptokens", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgs); + }); + + +task("addliquidity", "execute task Add Liquidity") + .addParam("protocol", "protocol to be operated with") + .addParam("token1", "token-1 name") + .addParam("token2", "token-2 name") + .addParam("amount1", "amount-1 of tokens to provide") + .addParam("amount2", "amount-2 of tokens to provide") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + amount1: taskArgs["amount1"], + amount2: taskArgs["amount2"], + token1: taskArgs["token1"], + token2: taskArgs["token2"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount1 = Money.toSafeMoneyWithLimit(unsafeArgs.amount1); + const safeAmount2 = Money.toSafeMoneyWithLimit(unsafeArgs.amount2); + const safeToken1Address = registry.findToken(unsafeArgs.token1).address; + const safeToken2Address = registry.findToken(unsafeArgs.token2).address; + const safeArgs = { + protocol: safeProtocolId, + token1Address: safeToken1Address, + token2Address: safeToken2Address, + amount1: safeAmount1, + amount2: safeAmount2 + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + await addLiquidityExecutor(new AddLiquidityTask({ + name: "addliquidity", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgs); + }); + +task("removeliquidity", "execute task Remove Liquidity") + .addParam("protocol", "protocol to be operated with") + .addParam("token1", "token-1 name") + .addParam("token2", "token-2 name") + .addParam("liquiditypair", "name of the liquidity pair") + .addParam("amount", "amount of liquidity to be removed") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + token1: taskArgs["token1"], + token2: taskArgs["token2"], + amount: taskArgs["amount"], + liquidityPair: taskArgs["liquiditypair"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = Money.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeToken1Address = registry.findToken(unsafeArgs.token1).address; + const safeToken2Address = registry.findToken(unsafeArgs.token2).address; + const safeLiquidityPair = registry.findToken(unsafeArgs.liquidityPair).id; + const safeArgs = { + protocol: safeProtocolId, + token1Address: safeToken1Address, + token2Address: safeToken2Address, + liquidityPair: safeLiquidityPair, + amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + await removeLiquidityExecutor(new RemoveLiquidityTask({ + name: "removeliquidity", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgs); + }); + +task("buynode", "execute task Buy Node") + .addParam("protocol", "protocol to be operated with") + .addParam("amount", "amount of nodes to buy") + .addParam("node", "type of node (eg: grape, wine...)") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + node: taskArgs["node"], + amount: taskArgs["amount"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = Money.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeNodeId = registry.findNode(unsafeArgs.node).id; + const safeArgs = { + protocol: safeProtocolId, + node: safeNodeId, + amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + await buyNodeExecutor(new BuyNodeTask({ + name: "buynode", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgs); + }); + +task("stake", "execute task Stake") + .addParam("protocol", "protocol to be operated with") + .addParam("amount", "amount to stake") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + amount: taskArgs["amount"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = Money.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeArgs = { + protocol: safeProtocolId, amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + const x = new StakeTask({ + name: "stake", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }); + await stakeExecutor(x, safeArgs); + }); + +task("deposit", "execute task Deposit") + .addParam("protocol", "protocol to be operated with") + .addParam("liquiditypair", "name of the liquidity pair") + .addParam("amount", "amount to stake") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + amount: taskArgs["amount"], + liquidityPair: taskArgs["liquiditypair"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = Money.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeLiquidityPairId = registry.findToken(unsafeArgs.liquidityPair).id; + const safeArgs = { + protocol: safeProtocolId, + amount: safeAmount, + liquidityPair: safeLiquidityPairId + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + await depositExecutor(new DepositTask({ + name: "deposit", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgs); + }); + +task("poolclaim", "execute task Claim") + .addParam("protocol", "protocol to be operated with") + .addParam("pool", "pool to be operated with") + .addParam("amount", "amount to stake") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + pool: taskArgs["pool"], + amount: taskArgs["amount"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safePool = registry.findPool(unsafeArgs.pool).id; + const safeAmount = Money.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeArgs = { + protocol: safeProtocolId, pool: safePool, amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgs); + }); + +task("grapeFlow04", "execute flow for Grape Finance") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + const dataObj = { + balances: Array() + }; + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + F4T1A: FLOW_04_TASK_01_MIN_AMOUNT_OF_MIM_TO_START, + F4T1B: FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_REWARDS_TO_START, + F4T1E: FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_IN_WALLET, + F4T1F: FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_GRAPE_LP, + F4T1G: FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_MIM_LP + }; + + const safeF4T1A = EnvUtil.toNumber(unsafeArgs.F4T1A); + const safeF4T1B = EnvUtil.toNumber(unsafeArgs.F4T1B); + const safeF4T1D = Money.toSafeMoneyWithLimit(0); // by default, we don't withdraw from the LP by default when we claim + const safeF4T1E = EnvUtil.toNumber(unsafeArgs.F4T1E); + const safeF4T1F = EnvUtil.toNumber(unsafeArgs.F4T1F); + const safeF4T1G = EnvUtil.toNumber(unsafeArgs.F4T1F); + + const safeTraderJoeId = registry.findProtocol("traderjoe").id; + const safeVineyardId = registry.findProtocol("grapefinance-vineyard").id; + const safeWineryId = registry.findProtocol("grapefinance-winery").id; + const safeGrapeMIMPoolId = "grapemimlp"; + const safeMIMWinePoolId = "mimwinelp"; + const safeGrapeWinePoolId = "grapewinelp"; + + const traderJoeContractAddress = registry.findProtocol("traderjoe").address; + + const grapeTokenAddress = registry.findToken("grape").address; + const wineTokenAddress = registry.findToken("wine").address; + const mimTokenAddress = registry.findToken("mim").address; + const grapeWineLPTokenAddress = registry.findToken("grape-wine-lp").address; + const mimWineLPTokenAddress = registry.findToken("mim-wine-lp").address; + const grapeMIMLPTokenAddress = registry.findToken("grape-mim-lp").address; + + const traderJoeContract = await ethers.getContractAt(TRADERJOE_ABI, traderJoeContractAddress); + + const grapeTokenContract = await ethers.getContractAt(ERC20_ABI, grapeTokenAddress); + const wineTokenContract = await ethers.getContractAt(ERC20_ABI, wineTokenAddress); + const mimTokenContract = await ethers.getContractAt(ERC20_ABI, mimTokenAddress); + const grapeMIMLPTokenContract = await ethers.getContractAt(ERC20_ABI, grapeMIMLPTokenAddress); + const grapeWineLPTokenContract = await ethers.getContractAt(ERC20_ABI, grapeWineLPTokenAddress); + const mimWineLPTokenContract = await ethers.getContractAt(ERC20_ABI, mimWineLPTokenAddress); + + const account: SignerWithAddress = await getAccount(); + const accountAddress = account.address; + let entity = registry.getEntityData(safeVineyardId); + + interface walletBalance { + address: string; + mim: number; + wine: number; + } + + const balance: walletBalance = { + address: accountAddress, + mim: 0, + wine: 0 + + }; + + // 1. Check the available MIM balance + let mimTokenBalance = await mimTokenContract.balanceOf(accountAddress); + mimTokenBalance = Money.parseAmount(mimTokenBalance); + console.log("mimTokenBalance:", mimTokenBalance); + + if (mimTokenBalance < safeF4T1A) { + console.log("! --> amount of MIM in wallet is not above threshold. Cancelling script..."); + process.exit(); + // throw new Error('amount of MIM in wallet is not above threshold.'); + } + + // 2. Claim WINE from each pool + // 2.1. claim WINE from GRAPE-MIM-LP + let safeArgs = { + protocol: safeVineyardId, + pool: safeGrapeMIMPoolId, + amount: safeF4T1D + }; + console.log("//////////////////////////CLAIM WINE FROM GRAPE-MIM-LP"); + await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgs); + + // 2.2. claim WINE from WINE-MIM-LP + safeArgs = { + protocol: safeVineyardId, + pool: safeMIMWinePoolId, + amount: safeF4T1D + }; + console.log("//////////////////////////CLAIM WINE FROM WINE-MIM-LP "); + await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgs); + + // 2.3. claim WINE from GRAPE-WINE-LP + safeArgs = { + protocol: safeVineyardId, + pool: safeGrapeWinePoolId, + amount: safeF4T1D + }; + console.log("//////////////////////////CLAIM WINE FROM GRAPE-WINE-LP"); + await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgs); + + + // 3. Check amount of WINE in wallet + + let wineTokenBalance = await wineTokenContract.balanceOf(accountAddress); + wineTokenBalance = Money.parseAmount(wineTokenBalance); + console.log("wineTokenBalance:", wineTokenBalance); + balance["wine"] = wineTokenBalance; + + if (wineTokenBalance < safeF4T1E) { + console.log("! --> amount of WINE in wallet is not above threshold. Cancelling script..."); + process.exit(); + // throw new Error('amount of WINE in wallet is not above threshold.'); + } + + + let amountOfWineToStakeIntoWineGrapeLp = wineTokenBalance * (33.33 / 100); + let amountOfWineToStakeIntoMimWineLp = wineTokenBalance * (33.3 / 100); + const amountOfWineToStakeIntoWinery = wineTokenBalance * (33.33 / 100); + console.log("amountOfWineToStakeIntoWineGrapeLp:", amountOfWineToStakeIntoWineGrapeLp); + console.log("amountOfWineToStakeIntoMimWineLp:", amountOfWineToStakeIntoMimWineLp); + console.log("amountOfWineToStakeIntoWinery:", amountOfWineToStakeIntoWinery); + + // check price of GRAPE in MIM + let grapePriceInMim = await traderJoeContract.getAmountsOut(Money.toBigNumber(1), [grapeTokenAddress, mimTokenAddress]); + grapePriceInMim = Money.parseAmount(grapePriceInMim[1]); + console.log("grapePriceInMim: ", grapePriceInMim); + + // check price of WINE in MIM + let winePriceInMim = await traderJoeContract.getAmountsOut(Money.toBigNumber(1), [wineTokenAddress, mimTokenAddress]); + winePriceInMim = Money.parseAmount(winePriceInMim[1]); + console.log("winePriceInMim: ", winePriceInMim); + + const wineGrapeRatio = winePriceInMim / grapePriceInMim; + console.log("wineGrapeRatio:", wineGrapeRatio); + + let amountOfGrapeToBuy = (amountOfWineToStakeIntoWineGrapeLp * wineGrapeRatio); + console.log("amountOfGrapeToBuy:", amountOfGrapeToBuy); + + let amountOfMimToInputIntoWineGrapeLp = amountOfGrapeToBuy * grapePriceInMim; + console.log("amountOfMimToInputIntoWineGrapeLp:", amountOfMimToInputIntoWineGrapeLp); + + let amountOfMimToInputIntoMimWineLp = winePriceInMim * amountOfWineToStakeIntoMimWineLp; + console.log("amountOfMimToInputIntoMimWineLp:", amountOfMimToInputIntoMimWineLp); + + const amountOfNecessaryMim = amountOfMimToInputIntoWineGrapeLp + amountOfMimToInputIntoMimWineLp; + console.log("amountOfNecessaryMim:", amountOfNecessaryMim); + + const amountOfMimToFetch = amountOfNecessaryMim - mimTokenBalance; + console.log("amountOfMimToFetch:", amountOfMimToFetch); + + let amountOfGrapeMimLPTokensToRemove = 0; + if (amountOfMimToFetch > 0) { + + amountOfGrapeMimLPTokensToRemove = amountOfMimToFetch / grapePriceInMim; + } + + console.log("amountOfGrapeMimLPTokensToRemove:", amountOfGrapeMimLPTokensToRemove); + + const safeAmountOfGrapeToBuy = Money.toSafeMoneyWithLimit(amountOfGrapeToBuy); + const safeAmountOfMimToInputIntoWineGrapeLp = Money.toSafeMoneyWithLimit(amountOfMimToInputIntoWineGrapeLp); + const safeAmountOfWineToStakeIntoWineGrapeLp = Money.toSafeMoneyWithLimit(amountOfWineToStakeIntoWineGrapeLp); + + const safeAmountOfMimToInputIntoMimWineLp = Money.toSafeMoneyWithLimit(amountOfMimToInputIntoMimWineLp); + const safeAmountOfWineToStakeIntoMimWineLp = Money.toSafeMoneyWithLimit(amountOfWineToStakeIntoMimWineLp); + const safeAmountOfGrapeMimLPTokensToRemove = Money.toSafeMoneyWithLimit(amountOfGrapeMimLPTokensToRemove); + + if (amountOfGrapeMimLPTokensToRemove > 0) { + console.log("////////////////////////// REMOVE LIQUIDITY FROM GRAPE-MIM-LP"); + const safeProtocolId = registry.findProtocol("traderjoe").id; + const safeAmount = safeAmountOfGrapeMimLPTokensToRemove; + const safeToken1Address = registry.findToken("grape").address; + const safeToken2Address = registry.findToken("mim").address; + const safeLiquidityPair = registry.findToken("grape-mim-lp").id; + const safeArgs = { + protocol: safeProtocolId, + token1Address: safeToken1Address, + token2Address: safeToken2Address, + liquidityPair: safeLiquidityPair, + amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + await removeLiquidityExecutor(new RemoveLiquidityTask({ + name: "removeliquidity", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgs); + + } else { + console.log("No need to remove GRAPE-MIM-LP tokens from the Vineyard. There is enough MIM available."); + } + + mimTokenBalance = await mimTokenContract.balanceOf(accountAddress); + mimTokenBalance = Money.parseAmount(mimTokenBalance); + console.log("new mimTokenBalance:", mimTokenBalance); + balance["mim"] = mimTokenBalance; + + const safeArgsB = { + protocol: safeTraderJoeId, + tokenInAddress: mimTokenAddress, + tokenOutAddress: grapeTokenAddress, + amount: safeAmountOfMimToInputIntoWineGrapeLp + }; + + console.log("//////////////////////////SWAP MIM FOR GRAPE AT TRADERJOE"); + await swapTokensExecutor( + new SwapTokensTask({ + name: "swaptokens", + context: { + address: account.address, + provider: hre.ethers.provider + }, entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), + safeArgsB); + + // Add Liquidity to Grape Wine LP at TraderJoe + const safeArgsC = { + protocol: safeTraderJoeId, + token1Address: grapeTokenAddress, + token2Address: wineTokenAddress, + amount1: safeAmountOfGrapeToBuy, + amount2: safeAmountOfWineToStakeIntoWineGrapeLp + }; + console.log("//////////////////////////ADD LIQUIDITY TO GRAPE-WINE-LP AT TRADERJOE "); + await addLiquidityExecutor( + new AddLiquidityTask({ + name: "addliquidity", + context: { + address: account.address, + provider: hre.ethers.provider + }, entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), + safeArgsC); + + // Get Balance of Grape-Wine-LP tokens in wallet + let grapeWineLPTokenBalance = await grapeWineLPTokenContract.balanceOf(accountAddress); + grapeWineLPTokenBalance = Money.parseAmount(grapeWineLPTokenBalance); + console.log("grapeWineLPTokenBalance :", grapeWineLPTokenBalance); + + const amountOfLPToDeposit = Money.toSafeMoneyWithLimit(grapeWineLPTokenBalance * 0.9995); + + // Add WINE-GRAPE-LP-token to Grape + const safeLiquidityPairId = registry.findToken("grape-wine-lp").id; + const safeArgsD = { + protocol: safeVineyardId, + amount: amountOfLPToDeposit, + liquidityPair: safeLiquidityPairId + }; + entity = registry.getEntityData(safeVineyardId); + console.log("//////////////////////////DEPOSIT GRAPE-WINE-LP TOKEN AT GRAPE-FINANCE'S VINEYARD"); + await depositExecutor( + new DepositTask({ + name: "deposit", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgsD); + + // Add Liquidity to MIM Wine LP at TraderJoe + const safeArgsE = { + protocol: safeTraderJoeId, + token1Address: mimTokenAddress, + token2Address: wineTokenAddress, + amount1: safeAmountOfMimToInputIntoMimWineLp, + amount2: safeAmountOfWineToStakeIntoMimWineLp + }; + console.log("//////////////////////////ADD LIQUIDITY TO MIM-WINE-LP AT TRADERJOE"); + await addLiquidityExecutor(new AddLiquidityTask({ + name: "addliquidity", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgsE); + + // Get Balance of Grape-Wine-LP tokens in wallet + let mimWineLPTokenBalance = await mimWineLPTokenContract.balanceOf(accountAddress); + mimWineLPTokenBalance = Money.parseAmount(mimWineLPTokenBalance); + console.log("mimWineLPTokenBalance :", mimWineLPTokenBalance); + + const amountOfMimWineLPToDeposit = Money.toSafeMoneyWithLimit(mimWineLPTokenBalance * 0.9995); + + // Add MIM-WINE-LP-token to Grape + const safeMimWineLiquidityPairId = registry.findToken("mim-wine-lp").id; + const safeArgsF = { + protocol: safeVineyardId, + amount: amountOfMimWineLPToDeposit, + liquidityPair: safeMimWineLiquidityPairId + }; + entity = registry.getEntityData(safeVineyardId); + console.log("////////////////////////// DEPOSIT MIM-WINE-LP TOKEN AT GRAPE-FINANCE'S VINEYARD"); + await depositExecutor(new DepositTask({ + name: "deposit", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgsF); + + + const safeProtocolId = registry.findProtocol("grapefinance-winery").id; + const safeAmount = Money.toSafeMoneyWithLimit(amountOfWineToStakeIntoWinery); + const safeArgsG = { + protocol: safeProtocolId, amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + entity = registry.getEntityData(safeProtocolId); + console.log("////////////////////////// STAKE WINE AT THE WINERY"); + await stakeExecutor(new StakeTask({ + name: "stake", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgsG); + + }); \ No newline at end of file diff --git a/tasks/tasks.ts b/tasks/tasks.ts new file mode 100644 index 0000000..6276fd4 --- /dev/null +++ b/tasks/tasks.ts @@ -0,0 +1,3032 @@ +import { task } from "hardhat/config"; +import * as dotenv from "dotenv"; +import * as fs from "fs"; +import { SignerWithAddress } from "hardhat-deploy-ethers/src/signers"; +import { BigNumber } from "ethers"; +import { ContractTransaction } from "@ethersproject/contracts"; +import { ContractReceipt } from "@ethersproject/contracts/src.ts"; +import ERC20_ABI from "../ABI/ERC20.json"; +import TRADERJOE_ABI from "../ABI/TraderJoe.json"; +import { TaskRegistry } from "../src/classes/Registry"; +import { SwapNativeTask } from "../src/tasks/SwapNativeTask"; +import { SwapTokensTask } from "../src/tasks/SwapTokensTask"; +import { AddLiquidityTask } from "../src/tasks/AddLiquidityTask"; +import { RemoveLiquidityTask } from "../src/tasks/RemoveLiquidityTask"; +import { ClaimTask } from "../src/tasks/ClaimTask"; +import { WithdrawTask } from "../src/tasks/WithdrawTask"; +import { PoolClaimTask } from "../src/tasks/PoolClaimTask"; +import { BuyNodeTask } from "../src/tasks/BuyNodeTask"; +import { DepositTask } from "../src/tasks/DepositTask"; +import { StakeTask } from "../src/tasks/StakeTask"; +import { EnvUtil } from "../src/classes/EnvUtil"; +import Money from "../lib/money/Money"; +import { OldMoney } from "../src/classes/OldMoney"; +import { string } from "hardhat/internal/core/params/argumentTypes"; +import Ledger from "../accounting/Ledger"; +import Tracker from "../accounting/Tracker"; +const path = require("path"); +const envFilePath = path.resolve(__dirname, "../.env"); + +dotenv.config(); + + + +//region CONSTANTS +const FLOW_04_TASK_01_MIN_AMOUNT_OF_MIM_TO_START: string = process.env.FLOW_04_TASK_01_MIN_AMOUNT_OF_MIM_TO_START as string; +const FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_REWARDS_TO_START: string = process.env.FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_REWARDS_TO_START as string; +const FLOW_04_TASK_01_DO_WE_CLAIM_ALL: string = process.env.FLOW_04_TASK_01_DO_WE_CLAIM_ALL as string; +const FLOW_04_TASK_01_AMOUNT_OF_WINE_TO_CLAIM: string = process.env.FLOW_04_TASK_01_AMOUNT_OF_WINE_TO_CLAIM as string; +const FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_GRAPE_LP: string = process.env.FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_GRAPE_LP as string; +const FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_MIM_LP: string = process.env.FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_MIM_LP as string; +const FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_IN_WALLET: string = process.env.FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_IN_WALLET as string; + +const FLOW_05_MIN_GRAPE_CLAIMABLE: string = process.env.FLOW_05_MIN_GRAPE_CLAIMABLE as string; +const FLOW_05_MIN_WINE_CLAIMABLE: string = process.env.FLOW_05_MIN_WINE_CLAIMABLE as string; + +const FLOW_05_RUN_ID: string = process.env.FLOW_05_RUN_ID as string; + +//endregion + +let ethers: any = null; + +function setEnvironment(hre: any) { + ethers = hre.ethers; +} + +async function getAccount() { + + let account1: SignerWithAddress; + const accounts = await ethers.getSigners(); + + // @ts-ignore + if (accounts.length > 0) { + account1 = accounts[0]; + } else { + throw new Error("no accounts found by ethers.getSigners()"); + } + + return account1; + +} + +/* +like "Run_ID, Date, Action, Step, Account, Asset, Amount, Tx" +Date = now() +Run = 1 +Action = winenode.nodes_wine.claim +Step = claim +Account = grapefinance:nodes:winenode +Asset = WINE +Amount = 0.1 +Tx = 0x00000.... +*/ +interface execOptionsRef { + log: boolean | undefined, + ledger: boolean | undefined, + logInfo: { + label: string | undefined, + protocol: string | undefined, + chainId: string | undefined, + nativeToken: string | undefined, + run: number | undefined, + action: string | undefined, + step: string | undefined, + amount: number | undefined, + asset: string | undefined, + tx: string | undefined + } +} +export async function execTx(tx: Promise | ContractTransaction, options: execOptionsRef, balanceBefore: Balances) { + // const before = await getBalances(); + const result = await (await tx).wait(); + const before = balanceBefore; + const after = await getBalances(); + const delta = await getDelta(before, after); + + const resultString = JSON.stringify(result); + const beforeString = JSON.stringify(before); + const afterString = JSON.stringify(after); + const deltaString = JSON.stringify(delta); + + + options.log && console.log(`execTx`, { + beforeString, + resultString, + afterString, + deltaString + }); + + if (options.ledger) { + const ledger = new Ledger({ filename: 'ledger' }); + await ledger.addTransaction(delta, options.logInfo.label); + + const tracker = new Tracker({ filename: 'tracker' }); + await tracker.addTransaction(delta, options.logInfo.label); + } + + return { receipt: result, delta: delta }; +} + +// context == application state / wallet state / connection to chain + +const registry = new TaskRegistry(); + +async function claimExecutor(task: ClaimTask, safeArgs: { protocol: string }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + + return await task.execute({ protocol: safeArgs.protocol }); +} + +async function withdrawExecutor(task: WithdrawTask, safeArgs: { protocol: string, amount: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + + return await task.execute({ protocol: safeArgs.protocol, amount: safeArgs.amount }); +} + +async function swapNativeExecutor(task: SwapNativeTask, safeArgs: { protocol: string, tokenInAddress: string, tokenOutAddress: string, amount: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + return await task.execute({ + protocol: safeArgs.protocol, + tokenInAddress: safeArgs.tokenInAddress, + tokenOutAddress: safeArgs.tokenOutAddress, + amount: safeArgs.amount + }); +} + +async function swapTokensExecutor(task: SwapTokensTask, safeArgs: { protocol: string, tokenInAddress: string, tokenOutAddress: string, amount: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + return await task.execute({ + protocol: safeArgs.protocol, + tokenInAddress: safeArgs.tokenInAddress, + tokenOutAddress: safeArgs.tokenOutAddress, + amount: safeArgs.amount + }); +} + +async function addLiquidityExecutor(task: AddLiquidityTask, safeArgs: { protocol: string, token1Address: string, token2Address: string, amount1: BigNumber, amount2: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + return await task.execute({ + protocol: safeArgs.protocol, + token1Address: safeArgs.token1Address, + token2Address: safeArgs.token2Address, + amount1: safeArgs.amount1, + amount2: safeArgs.amount2 + }); +} + +async function poolclaimExecutor( + task: PoolClaimTask, + safeArgs: { + protocol: string, pool: string, amount: BigNumber; + }) { + + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + return await task.execute({ + protocol: safeArgs.protocol, + pool: safeArgs.pool, + amount: safeArgs.amount + }); +} + +async function removeLiquidityExecutor(task: RemoveLiquidityTask, safeArgs: { protocol: string, token1Address: string, token2Address: string, liquidityPair: string, amount: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + return await task.execute({ + protocol: safeArgs.protocol, + token1Address: safeArgs.token1Address, + token2Address: safeArgs.token2Address, + liquidityPair: safeArgs.liquidityPair, + amount: safeArgs.amount + }); +} + +async function stakeExecutor(task: StakeTask, safeArgs: { protocol: string, token: string, amount: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + return await task.execute({ protocol: safeArgs.protocol, token: safeArgs.token, amount: safeArgs.amount }); +} + +async function depositExecutor(task: DepositTask, safeArgs: { protocol: string, amount: BigNumber; liquidityPair: string; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + return await task.execute({ + protocol: safeArgs.protocol, + amount: safeArgs.amount, + liquidityPair: safeArgs.liquidityPair + }); + + // await tx.wait(); +} + +async function buyNodeExecutor(task: BuyNodeTask, safeArgs: { protocol: string, node: string, amount: BigNumber; }) { + console.log(`executing task ${task.getName()}...`); + console.log(safeArgs); + + return await task.execute({ protocol: safeArgs.protocol, node: safeArgs.node, amount: safeArgs.amount }); +} + + +async function checkFunds(address: string) { + + const accounts = await ethers.provider.listAccounts(); + console.log("accounts: "); + console.log(accounts); + console.log("checking available funds..."); + console.log("wallet address:", address); + const balance = await ethers.provider.getBalance(address); + const balanceFmt = ethers.utils.formatEther(balance); + console.log("balance:", balanceFmt); +} + + + +export interface Balances { + wallet: { + [key: string]: { amount: number, value: string, price: number }, + }, + buckets: { + [key: string]: { amount: number, value: string, price: number }, + } +} + +export async function getBalances(): Promise { + const account: SignerWithAddress = await getAccount(); + + const grapeTokenAddress = registry.findToken("grape").address; + const wineTokenAddress = registry.findToken("wine").address; + const mimTokenAddress = registry.findToken("mim").address; + const grapeWineLPTokenAddress = registry.findToken("grape-wine-lp").address; + const mimWineLPTokenAddress = registry.findToken("mim-wine-lp").address; + const grapeMIMLPTokenAddress = registry.findToken("grape-mim-lp").address; + const wavaxTokenAddress = registry.findToken("wavax").address; + const usdcTokenAddress = registry.findToken("usdc").address; + const traderJoeContractAddress = registry.findProtocol("traderjoe").address; + const grapeNodeContractAddress = registry.findNode("grape").node_contract_address; + const wineNodeContractAddress = registry.findNode("wine").node_contract_address; + + const grapeNodeContractABI = registry.findNode("grape").ABI; + const wineNodeContractABI = registry.findNode("wine").ABI; + + const grapeTokenContract = await ethers.getContractAt(ERC20_ABI, grapeTokenAddress); + const wineTokenContract = await ethers.getContractAt(ERC20_ABI, wineTokenAddress); + const mimTokenContract = await ethers.getContractAt(ERC20_ABI, mimTokenAddress); + const grapeMIMLPTokenContract = await ethers.getContractAt(ERC20_ABI, grapeMIMLPTokenAddress); + const grapeWineLPTokenContract = await ethers.getContractAt(ERC20_ABI, grapeWineLPTokenAddress); + const mimWineLPTokenContract = await ethers.getContractAt(ERC20_ABI, mimWineLPTokenAddress); + const traderJoeContract = await ethers.getContractAt(TRADERJOE_ABI, traderJoeContractAddress); + const grapeNodeContract = await ethers.getContractAt(grapeNodeContractABI, grapeNodeContractAddress); + const wineNodeContractABI2 = [{ "inputs": [{ "internalType": "uint256", "name": "_startTime", "type": "uint256" }], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [{ "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "num", "type": "uint256" }], "name": "CreateNode", "type": "event" }, { "inputs": [], "name": "MULTIPLIER", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TOKEN", "outputs": [{ "internalType": "contract IERC20", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "name": "allocPoints", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address payable", "name": "newDev", "type": "address" }], "name": "changeDev", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimTreasuryRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "compound", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "nodeTier", "type": "uint256" }, { "internalType": "uint256", "name": "numNodes", "type": "uint256" }], "name": "create", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "dripRate", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dripRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "contract IERC20", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amnt", "type": "uint256" }], "name": "emergencyWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enabled", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBalance", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBalancePool", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_user", "type": "address" }], "name": "getDayDripEstimate", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "name": "getDistributionRewards", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_sender", "type": "address" }], "name": "getNodes", "outputs": [{ "internalType": "uint256[]", "name": "", "type": "uint256[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRewardDrip", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalNodes", "outputs": [{ "internalType": "uint256[]", "name": "", "type": "uint256[]" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_sender", "type": "address" }], "name": "getTotalRewards", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_sender", "type": "address" }], "name": "isMaxPayout", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastDripTime", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_sender", "type": "address" }], "name": "maxPayout", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxReturnPercent", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }], "name": "nodes", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_sender", "type": "address" }, { "internalType": "uint256", "name": "_nodeId", "type": "uint256" }], "name": "numNodes", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "rate", "type": "uint256" }], "name": "setDripRate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "bool", "name": "_enabled", "type": "bool" }], "name": "setEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "timestamp", "type": "uint256" }], "name": "setLastDripTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "percent", "type": "uint256" }], "name": "setMaxReturnPercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "uint256[]", "name": "_nodes", "type": "uint256[]" }], "name": "setNodes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_startTime", "type": "uint256" }], "name": "setStartTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256[]", "name": "_tierAllocPoints", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "_tierAmounts", "type": "uint256[]" }], "name": "setTierValues", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "percent", "type": "uint256" }], "name": "setTreasuryFeePercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_addr", "type": "address" }, { "components": [{ "internalType": "uint256", "name": "total_deposits", "type": "uint256" }, { "internalType": "uint256", "name": "total_claims", "type": "uint256" }, { "internalType": "uint256", "name": "last_distPoints", "type": "uint256" }], "internalType": "struct Node.User", "name": "_user", "type": "tuple" }], "name": "setUser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startTime", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "name": "tierAllocPoints", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "name": "tierAmounts", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAllocPoints", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalDistributePoints", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalDistributeRewards", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "name": "totalNodes", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "total_claimed", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "total_deposited", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "total_rewards", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "total_users", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "treasuryFeePercent", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "treasury_rewards", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "name": "userIndices", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }], "name": "users", "outputs": [{ "internalType": "uint256", "name": "total_deposits", "type": "uint256" }, { "internalType": "uint256", "name": "total_claims", "type": "uint256" }, { "internalType": "uint256", "name": "last_distPoints", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" }]; + const wineNodeContract = await ethers.getContractAt(wineNodeContractABI2, wineNodeContractAddress); + + // console.log('wineNodeContract:'); + // console.log(wineNodeContract); + let wineNodesBalance = await wineNodeContract.getNodes(account.address); + // console.log('wineNodesBalance:', wineNodesBalance); + wineNodesBalance = parseFloat(ethers.utils.formatUnits(wineNodesBalance[0], 0)); + // console.log('wineNodesBalance:', wineNodesBalance); + + let wineNodesWineClaimable:BigNumber|number = BigNumber.from('0') //await wineNodeContract.getTotalRewards(account.address); + // console.log("wineNodesWineClaimable:",wineNodesWineClaimable); + wineNodesWineClaimable = OldMoney.parseAmount(wineNodesWineClaimable); + // console.log("wineNodesWineClaimable:",wineNodesWineClaimable); + + let grapeNodesBalance = await grapeNodeContract.getNodes(account.address); + grapeNodesBalance = parseFloat(ethers.utils.formatUnits(grapeNodesBalance[0], 0)); + + let grapeNodesGrapeClaimable = await grapeNodeContract.getTotalRewards(account.address); + // console.log("grapeNodesGrapeClaimable:",grapeNodesGrapeClaimable); + grapeNodesGrapeClaimable = OldMoney.parseAmount(grapeNodesGrapeClaimable); + // console.log("grapeNodesGrapeClaimable:",wineNodesGrapeClaimable); + + + + let wineRewardPoolAddress = "0x28c65dcB3a5f0d456624AFF91ca03E4e315beE49"; + // let abiX = [{ "inputs": [{ "internalType": "address", "name": "_wine", "type": "address" }, { "internalType": "uint256", "name": "_poolStartTime", "type": "uint256" }], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "EmergencyWithdraw", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "RewardPaid", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "Withdraw", "type": "event" }, { "inputs": [], "name": "TOTAL_REWARDS", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_allocPoint", "type": "uint256" }, { "internalType": "contract IERC20", "name": "_token", "type": "address" }, { "internalType": "bool", "name": "_withUpdate", "type": "bool" }, { "internalType": "uint256", "name": "_lastRewardTime", "type": "uint256" }], "name": "add", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_pid", "type": "uint256" }], "name": "emergencyWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_fromTime", "type": "uint256" }, { "internalType": "uint256", "name": "_toTime", "type": "uint256" }], "name": "getGeneratedReward", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "contract IERC20", "name": "_token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" }], "name": "governanceRecoverUnsupported", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "massUpdatePools", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "operator", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "address", "name": "_user", "type": "address" }], "name": "pendingShare", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolEndTime", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "name": "poolInfo", "outputs": [{ "internalType": "contract IERC20", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "allocPoint", "type": "uint256" }, { "internalType": "uint256", "name": "lastRewardTime", "type": "uint256" }, { "internalType": "uint256", "name": "accWinePerShare", "type": "uint256" }, { "internalType": "bool", "name": "isStarted", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolStartTime", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "runningTime", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "uint256", "name": "_allocPoint", "type": "uint256" }], "name": "set", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_operator", "type": "address" }], "name": "setOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalAllocPoint", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_pid", "type": "uint256" }], "name": "updatePool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" }], "name": "userInfo", "outputs": [{ "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "rewardDebt", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "wine", "outputs": [{ "internalType": "contract IERC20", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "winePerSecond", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }] + let wineRewardPoolABI = [{ "inputs": [{ "internalType": "address", "name": "_wine", "type": "address" }, { "internalType": "uint256", "name": "_poolStartTime", "type": "uint256" }], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "EmergencyWithdraw", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "RewardPaid", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "Withdraw", "type": "event" }, { "inputs": [], "name": "TOTAL_REWARDS", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_allocPoint", "type": "uint256" }, { "internalType": "contract IERC20", "name": "_token", "type": "address" }, { "internalType": "bool", "name": "_withUpdate", "type": "bool" }, { "internalType": "uint256", "name": "_lastRewardTime", "type": "uint256" }], "name": "add", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_pid", "type": "uint256" }], "name": "emergencyWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_fromTime", "type": "uint256" }, { "internalType": "uint256", "name": "_toTime", "type": "uint256" }], "name": "getGeneratedReward", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "contract IERC20", "name": "_token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" }], "name": "governanceRecoverUnsupported", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "massUpdatePools", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "operator", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "address", "name": "_user", "type": "address" }], "name": "pendingShare", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolEndTime", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "name": "poolInfo", "outputs": [{ "internalType": "contract IERC20", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "allocPoint", "type": "uint256" }, { "internalType": "uint256", "name": "lastRewardTime", "type": "uint256" }, { "internalType": "uint256", "name": "accWinePerShare", "type": "uint256" }, { "internalType": "bool", "name": "isStarted", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolStartTime", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "runningTime", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "uint256", "name": "_allocPoint", "type": "uint256" }], "name": "set", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_operator", "type": "address" }], "name": "setOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalAllocPoint", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_pid", "type": "uint256" }], "name": "updatePool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" }], "name": "userInfo", "outputs": [{ "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "rewardDebt", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "wine", "outputs": [{ "internalType": "contract IERC20", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "winePerSecond", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }] + let wineRewardPoolContract = await ethers.getContractAt(wineRewardPoolABI, wineRewardPoolAddress); + + + let vineyardGrapeMimLpWineClaimable = await wineRewardPoolContract.pendingShare(0, account.address); + vineyardGrapeMimLpWineClaimable = OldMoney.parseAmount(vineyardGrapeMimLpWineClaimable); + // console.log("vineyardGrapeMimLpWineClaimable:",vineyardGrapeMimLpWineClaimable); + let vineyardWineMimLpWineClaimable = await wineRewardPoolContract.pendingShare(1, account.address); + vineyardWineMimLpWineClaimable = OldMoney.parseAmount(vineyardWineMimLpWineClaimable); + // console.log("vineyardWineMimLpWineClaimable:",vineyardWineMimLpWineClaimable); + let vineyardGrapeWineLpWineClaimable = await wineRewardPoolContract.pendingShare(2, account.address); + vineyardGrapeWineLpWineClaimable = OldMoney.parseAmount(vineyardGrapeWineLpWineClaimable); + // console.log("vineyardGrapeWineLpWineClaimable:",vineyardGrapeWineLpWineClaimable); + + // console.log("wineRewardPoolContract:") + //console.log(wineRewardPoolContract) + + // let vineyardStakedGrapeWineClaimable = await wineRewardPoolContract.pendingShare(3, account.address); + // console.log("vineyardStakedGrapeWineClaimable:",vineyardStakedGrapeWineClaimable); + // vineyardStakedGrapeWineClaimable = OldMoney.parseAmount(vineyardStakedGrapeWineClaimable); + let vineyardStakedGrapeUserInfo = await wineRewardPoolContract.userInfo(3, account.address); + + let vineyardStakedGrape = OldMoney.parseAmount(vineyardStakedGrapeUserInfo[0]); + // let vineyardStakedGrapeWineClaimable = OldMoney.parseAmount(vineyardStakedGrapeUserInfo[1]); + + + + let vineyardStakedGrapeWineClaimable = await wineRewardPoolContract.pendingShare(3, account.address); + vineyardStakedGrapeWineClaimable = OldMoney.parseAmount(vineyardStakedGrapeWineClaimable); + + + + // console.log("vineyardStakedGrape:", vineyardStakedGrape); + // console.log("vineyardStakedGrapeWineClaimable:", vineyardStakedGrapeWineClaimable); + + //0--> grape-mim-lp ? + //1--> wine-mim-lp staked + //2--> grape-wine-lp staked + //3--> ? + //let userInfo = await contractX.userInfo(1, account.address); + let userInfoGrapeMim = await wineRewardPoolContract.userInfo(0, account.address); + let grapeMimLPStaked = OldMoney.parseAmount(userInfoGrapeMim["amount"]); + + let userInfoMimWine = await wineRewardPoolContract.userInfo(1, account.address); + let mimWineLPStaked = OldMoney.parseAmount(userInfoMimWine["amount"]); + + let userInfoGrapeWine = await wineRewardPoolContract.userInfo(2, account.address); + let grapeWineLPStaked = OldMoney.parseAmount(userInfoGrapeWine["amount"]); + + + let boardroomAddress = "0x3ce7bC78a7392197C569504970017B6Eb0d7A972"; + let boardroomABI = [{ "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "executor", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "at", "type": "uint256" }], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" }], "name": "RewardAdded", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" }], "name": "RewardPaid", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "Staked", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "Withdrawn", "type": "event" }, { "inputs": [{ "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "allocateSeigniorage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "name": "balanceOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "name": "boardroomHistory", "outputs": [{ "internalType": "uint256", "name": "time", "type": "uint256" }, { "internalType": "uint256", "name": "rewardReceived", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerShare", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "member", "type": "address" }], "name": "canClaimReward", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "member", "type": "address" }], "name": "canWithdraw", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "member", "type": "address" }], "name": "earned", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "epoch", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "exit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getGrapePrice", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "member", "type": "address" }], "name": "getLastSnapshotIndexOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "contract IERC20", "name": "_token", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "_to", "type": "address" }], "name": "governanceRecoverUnsupported", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "grape", "outputs": [{ "internalType": "contract IERC20", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "contract IERC20", "name": "_grape", "type": "address" }, { "internalType": "contract IERC20", "name": "_share", "type": "address" }, { "internalType": "contract ITreasury", "name": "_treasury", "type": "address" }], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initialized", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestSnapshotIndex", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }], "name": "members", "outputs": [{ "internalType": "uint256", "name": "lastSnapshotIndex", "type": "uint256" }, { "internalType": "uint256", "name": "rewardEarned", "type": "uint256" }, { "internalType": "uint256", "name": "epochTimerStart", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextEpochPoint", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "operator", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardLockupEpochs", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardPerShare", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_withdrawLockupEpochs", "type": "uint256" }, { "internalType": "uint256", "name": "_rewardLockupEpochs", "type": "uint256" }], "name": "setLockUp", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_operator", "type": "address" }], "name": "setOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "share", "outputs": [{ "internalType": "contract IERC20", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "treasury", "outputs": [{ "internalType": "contract ITreasury", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "amount", "type": "uint256" }], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawLockupEpochs", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }] + let boardroomContract = await ethers.getContractAt(boardroomABI, boardroomAddress); + + let wineryGrapeClaimable = await boardroomContract.earned(account.address); + wineryGrapeClaimable = OldMoney.parseAmount(wineryGrapeClaimable); + + let wineryWineStaked = await boardroomContract.balanceOf(account.address); + wineryWineStaked = OldMoney.parseAmount(wineryWineStaked); + + let avaxTokenBalance = await ethers.provider.getBalance(account.address); + avaxTokenBalance = OldMoney.parseAmount(avaxTokenBalance); + + let avaxPriceInUsdc = await traderJoeContract.getAmountsOut(OldMoney.toSafeMoneyWithLimit(1), [wavaxTokenAddress, usdcTokenAddress]); + // console.log("avaxPriceInUsdc:", avaxPriceInUsdc); + avaxPriceInUsdc = Math.round(ethers.utils.formatUnits(avaxPriceInUsdc[1], 6) * 100) / 100; + // console.log("avaxPriceInUsdc:", avaxPriceInUsdc); + const avaxValueInUsdc = Math.round(avaxPriceInUsdc * avaxTokenBalance * 100) / 100; + + + let mimTokenBalance = await mimTokenContract.balanceOf(account.address); + mimTokenBalance = OldMoney.parseAmount(mimTokenBalance); + + let mimPriceInUsdc = await traderJoeContract.getAmountsOut(OldMoney.toSafeMoneyWithLimit(1), [mimTokenAddress, usdcTokenAddress]); + mimPriceInUsdc = ethers.utils.formatUnits(mimPriceInUsdc[1], 6); + const mimValueInUsdc = Math.round(mimPriceInUsdc * mimTokenBalance * 100) / 100; + + let grapeTokenBalance = await grapeTokenContract.balanceOf(account.address); + grapeTokenBalance = OldMoney.parseAmount(grapeTokenBalance); + + let grapePriceInMim = await traderJoeContract.getAmountsOut(OldMoney.toSafeMoneyWithLimit(1), [grapeTokenAddress, mimTokenAddress]); + grapePriceInMim = ethers.utils.formatUnits(grapePriceInMim[1], 18); + // console.log('grapePriceInMim:', grapePriceInMim); + + const grapePriceInUsdc = grapePriceInMim * mimPriceInUsdc; + const grapeValueInUsdc = Math.round(grapePriceInUsdc * grapeTokenBalance * 100) / 100; + // console.log('grapeValueInUsdc:', grapeValueInUsdc); + const wineryGrapeClaimableValueInUsdc = Math.round(grapePriceInMim * wineryGrapeClaimable * mimPriceInUsdc * 100) / 100; + + const vineyardStakedGrapeUsdcValue = Math.round(vineyardStakedGrape * grapePriceInUsdc * 100) / 100; + + const grapeNodeCostInGrape = 50.0; + const grapeNodesPriceInUsdc = grapeNodeCostInGrape * grapePriceInUsdc; + const grapeNodesValueInUsdc = Math.round(grapeNodesPriceInUsdc * grapeNodesBalance * 100) / 100; + const grapeNodesGrapeClaimableValueInUsdc = Math.round(grapePriceInMim * (grapeNodesGrapeClaimable) * mimPriceInUsdc * 100) / 100; + + let wineTokenBalance = await wineTokenContract.balanceOf(account.address); + wineTokenBalance = OldMoney.parseAmount(wineTokenBalance); + + let winePriceInMim = await traderJoeContract.getAmountsOut(OldMoney.toSafeMoneyWithLimit(1), [wineTokenAddress, mimTokenAddress]); + winePriceInMim = ethers.utils.formatUnits(winePriceInMim[1], 18); + // console.log('winePriceInMim:', winePriceInMim); + + const winePriceInUsdc = winePriceInMim * mimPriceInUsdc; + const wineValueInUsdc = Math.round(wineTokenBalance * winePriceInUsdc * 100) / 100; + // console.log('wineValueInUsdc:', wineValueInUsdc); + + const wineryStakedWineValueInUsdc = Math.round(winePriceInMim * wineryWineStaked * mimPriceInUsdc * 100) / 100; + const vineyardWineMimLpWineClaimableValueInUsdc = Math.round(winePriceInMim * vineyardWineMimLpWineClaimable * mimPriceInUsdc * 100) / 100; + const vineyardGrapeWineLpWineClaimableValueInUsdc = Math.round(winePriceInMim * vineyardGrapeWineLpWineClaimable * mimPriceInUsdc * 100) / 100; + const vineyardGrapeMimLpWineClaimableValueInUsdc = Math.round(winePriceInMim * vineyardGrapeMimLpWineClaimable * mimPriceInUsdc * 100) / 100; + + let vineyardStakedGrapeWineClaimableValueInUsdc = Math.round(vineyardStakedGrapeWineClaimable * winePriceInUsdc * 100) / 100; + + const wineNodeCostInWine = 0.5; + const wineNodesPriceInUsdc = wineNodeCostInWine * winePriceInUsdc; + const wineNodesValueInUsdc = Math.round(wineNodesPriceInUsdc * wineNodesBalance * 100) / 100; + const wineNodesWineClaimableValueInUsdc = Math.round(winePriceInMim * (wineNodesWineClaimable) * mimPriceInUsdc * 100) / 100; + + let grapeMIMLPTokenBalance = await grapeMIMLPTokenContract.balanceOf(account.address); + grapeMIMLPTokenBalance = OldMoney.parseAmount(grapeMIMLPTokenBalance); + + let grapeWineLPTokenBalance = await grapeWineLPTokenContract.balanceOf(account.address); + grapeWineLPTokenBalance = OldMoney.parseAmount(grapeWineLPTokenBalance); + + let mimWineLPTokenBalance = await mimWineLPTokenContract.balanceOf(account.address); + mimWineLPTokenBalance = OldMoney.parseAmount(mimWineLPTokenBalance); + + + ///////////////////////// Value of LPs at TraderJoe + + // GRAPE-MIM-LP TOKEN VALUE + let grapeMimLpTotalSupply = await grapeMIMLPTokenContract.totalSupply(); + grapeMimLpTotalSupply = OldMoney.parseAmount(grapeMimLpTotalSupply); + // console.log("grapeMimLpTotalSupply: ", grapeMimLpTotalSupply); + + let ownedBalanceOfGrapeMimLp = await grapeMIMLPTokenContract.balanceOf(account.address); + ownedBalanceOfGrapeMimLp = OldMoney.parseAmount(ownedBalanceOfGrapeMimLp); + // console.log('ownedBalanceOfGrapeMimLp:',ownedBalanceOfGrapeMimLp); + + let grapeTokensTotalSupplyInGrapeMimLp = await grapeTokenContract.balanceOf(grapeMIMLPTokenAddress); + grapeTokensTotalSupplyInGrapeMimLp = OldMoney.parseAmount(grapeTokensTotalSupplyInGrapeMimLp); + // console.log("grapeTokensTotalSupplyInGrapeMimLp", grapeTokensTotalSupplyInGrapeMimLp); + + let mimTokensTotalSupplyInGrapeMimLp = await mimTokenContract.balanceOf(grapeMIMLPTokenAddress); + mimTokensTotalSupplyInGrapeMimLp = OldMoney.parseAmount(mimTokensTotalSupplyInGrapeMimLp); + // console.log("mimTokensTotalSupply", mimTokensTotalSupplyInGrapeMimLp ); + + let totalSupplyInGrapeMimLp = grapeTokensTotalSupplyInGrapeMimLp + mimTokensTotalSupplyInGrapeMimLp; + // console.log("totalSupply:", totalSupplyInGrapeMimLp); + + + let lpRatioForGrapeMimLp = 1.0 / totalSupplyInGrapeMimLp; + // console.log('lpRatioForGrapeMimLp:',lpRatioForGrapeMimLp); + let amountsOut = await traderJoeContract.getAmountsOut(OldMoney.toBigNumber(1, 18), [grapeTokenAddress, mimTokenAddress]); + // console.log('amountsOut:',amountsOut); + + let totalGrapeOutForGrapeMimLp = 1.0 / grapeMimLpTotalSupply * grapeTokensTotalSupplyInGrapeMimLp; + let totalMimOutForGrapeMimLp = 1.0 / grapeMimLpTotalSupply * mimTokensTotalSupplyInGrapeMimLp; + + // console.log('totalGrape:',totalGrapeOut); + // console.log('totalMim:',totalMimOut); + + let grapeInGrapeMimLpUsdcValue = Math.round(totalGrapeOutForGrapeMimLp * grapePriceInUsdc * 100) / 100; + let mimInGrapeMimLpUsdcValue = Math.round(totalMimOutForGrapeMimLp * mimPriceInUsdc * 100) / 100; + + // console.log("grapeInGrapeMimLpUsdValue:",grapeInGrapeMimLpUsdcValue); + // console.log("mimInGrapeMimLpUsdValue:",mimInGrapeMimLpUsdcValue); + + let grapeMimLpUsdcValue = grapeInGrapeMimLpUsdcValue + mimInGrapeMimLpUsdcValue; + + + // console.log("grapeMimLpUsdValue :",grapeMimLpUsdcValue); + + let walletGrapeMimLpUsdcValue = Math.round(ownedBalanceOfGrapeMimLp * grapeMimLpUsdcValue * 100) / 100; + let vineyardGrapeMimLpUsdcValue = Math.round(grapeMimLPStaked * grapeMimLpUsdcValue * 100) / 100; + + //// GRAPE-WINE-LP TOKEN VALUE + let grapeWineLpTotalSupply = await grapeWineLPTokenContract.totalSupply(); + grapeWineLpTotalSupply = OldMoney.parseAmount(grapeWineLpTotalSupply); + // console.log("grapeWineLpTotalSupply: ", grapeWineLpTotalSupply); + + let ownedBalanceOfGrapeWineLp = await grapeWineLPTokenContract.balanceOf(account.address); + ownedBalanceOfGrapeWineLp = OldMoney.parseAmount(ownedBalanceOfGrapeWineLp); + // console.log('ownedBalanceOfGrapeWineLp:',ownedBalanceOfGrapeWineLp); + + let grapeTokensTotalSupplyInGrapeWineLp = await grapeTokenContract.balanceOf(grapeWineLPTokenAddress); + grapeTokensTotalSupplyInGrapeWineLp = OldMoney.parseAmount(grapeTokensTotalSupplyInGrapeWineLp); + // console.log("grapeTokensTotalSupplyInGrapeWineLp", grapeTokensTotalSupplyInGrapeWineLp); + + let wineTokensTotalSupplyInGrapeWineLp = await wineTokenContract.balanceOf(grapeWineLPTokenAddress); + wineTokensTotalSupplyInGrapeWineLp = OldMoney.parseAmount(wineTokensTotalSupplyInGrapeWineLp); + // console.log("wineTokensTotalSupply", wineTokensTotalSupplyInGrapeWineLp ); + + let totalSupplyInGrapeWineLp = grapeTokensTotalSupplyInGrapeWineLp + wineTokensTotalSupplyInGrapeWineLp; + // console.log("totalSupply:", totalSupplyInGrapeWineLp); + + + let lpRatioForGrapeWineLp = 1.0 / totalSupplyInGrapeWineLp; + // console.log('lpRatioForGrapeWineLp:',lpRatioForGrapeWineLp); + let grapeWineAmountsOut = await traderJoeContract.getAmountsOut(OldMoney.toBigNumber(1, 18), [grapeTokenAddress, wineTokenAddress]); + // console.log('grapeWineAmountsOut:',grapeWineAmountsOut); + + let totalGrapeOutForGrapeWineLp = 1.0 / grapeWineLpTotalSupply * grapeTokensTotalSupplyInGrapeWineLp; + let totalMimOutForGrapeWineLp = 1.0 / grapeWineLpTotalSupply * wineTokensTotalSupplyInGrapeWineLp; + + // console.log('totalGrape:',totalGrapeOut); + // console.log('totalMim:',totalMimOut); + + let grapeInGrapeWineLpUsdcValue = Math.round(totalGrapeOutForGrapeWineLp * grapePriceInUsdc * 100) / 100; + let wineInGrapeWineLpUsdcValue = Math.round(totalMimOutForGrapeWineLp * winePriceInUsdc * 100) / 100; + + // console.log("grapeInGrapeWineLpUsdValue:",grapeInGrapeWineLpUsdcValue); + // console.log("wineInGrapeWineLpUsdValue:",wineInGrapeWineLpUsdcValue); + + let grapeWineLpUsdcValue = grapeInGrapeWineLpUsdcValue + wineInGrapeWineLpUsdcValue; + + + // console.log("grapeWineLpUsdValue :",grapeWineLpUsdcValue); + + let walletGrapeWineLpUsdcValue = Math.round(ownedBalanceOfGrapeWineLp * grapeWineLpUsdcValue * 100) / 100; + let vineyardGrapeWineLpUsdcValue = Math.round(grapeWineLPStaked * grapeWineLpUsdcValue * 100) / 100; + + //// MIM-WINE-LP TOKEN VALUE + let mimWineLpTotalSupply = await mimWineLPTokenContract.totalSupply(); + mimWineLpTotalSupply = OldMoney.parseAmount(mimWineLpTotalSupply); + // console.log("mimWineLpTotalSupply: ", mimWineLpTotalSupply); + + let ownedBalanceOfMimWineLp = await mimWineLPTokenContract.balanceOf(account.address); + ownedBalanceOfMimWineLp = OldMoney.parseAmount(ownedBalanceOfMimWineLp); + // console.log('ownedBalanceOfMimWineLp:',ownedBalanceOfMimWineLp); + + let mimTokensTotalSupplyInMimWineLp = await mimTokenContract.balanceOf(mimWineLPTokenAddress); + mimTokensTotalSupplyInMimWineLp = OldMoney.parseAmount(mimTokensTotalSupplyInMimWineLp); + // console.log("mimTokensTotalSupplyInMimWineLp", mimTokensTotalSupplyInMimWineLp); + + let wineTokensTotalSupplyInMimWineLp = await wineTokenContract.balanceOf(mimWineLPTokenAddress); + wineTokensTotalSupplyInMimWineLp = OldMoney.parseAmount(wineTokensTotalSupplyInMimWineLp); + // console.log("wineTokensTotalSupply", wineTokensTotalSupplyInMimWineLp ); + + let totalSupplyInMimWineLp = mimTokensTotalSupplyInMimWineLp + wineTokensTotalSupplyInMimWineLp; + // console.log("totalSupply:", totalSupplyInMimWineLp); + + + let lpRatioForMimWineLp = 1.0 / totalSupplyInMimWineLp; + // console.log('lpRatioForMimWineLp:',lpRatioForMimWineLp); + let mimWineAmountsOut = await traderJoeContract.getAmountsOut(OldMoney.toBigNumber(1, 18), [mimTokenAddress, wineTokenAddress]); + // console.log('mimWineAmountsOut:',mimWineAmountsOut); + + let totalGrapeOutForMimWineLp = 1.0 / mimWineLpTotalSupply * mimTokensTotalSupplyInMimWineLp; + let totalMimOutForMimWineLp = 1.0 / mimWineLpTotalSupply * wineTokensTotalSupplyInMimWineLp; + + // console.log('totalGrape:',totalGrapeOut); + // console.log('totalMim:',totalMimOut); + + let mimInMimWineLpUsdcValue = totalGrapeOutForMimWineLp * mimPriceInUsdc; + let wineInMimWineLpUsdcValue = totalMimOutForMimWineLp * winePriceInUsdc; + + // console.log("mimInMimWineLpUsdValue:",mimInMimWineLpUsdcValue); + // console.log("wineInMimWineLpUsdValue:",wineInMimWineLpUsdcValue); + + let mimWineLpUsdcValue = mimInMimWineLpUsdcValue + wineInMimWineLpUsdcValue; + + + // console.log("mimWineLpUsdValue :",mimWineLpUsdcValue); + + let walletMimWineLpUsdcValue = Math.round(ownedBalanceOfMimWineLp * mimWineLpUsdcValue * 100) / 100; + let vineyardMimWineLpUsdcValue = Math.round(mimWineLPStaked * mimWineLpUsdcValue * 100) / 100; + + + let portfolio = { + wallet: { + AVAX: { + amount: avaxTokenBalance, + value: avaxValueInUsdc.toString(), + price: avaxPriceInUsdc, + weight: 0.0 + }, + MIM: { + amount: mimTokenBalance, + value: mimValueInUsdc.toString(), + price: mimPriceInUsdc, + weight: 0.0 + }, + GRAPE: { + amount: grapeTokenBalance, + value: grapeValueInUsdc.toString(), + price: grapePriceInUsdc, + weight: 0.0 + }, + WINE: { + amount: wineTokenBalance, + value: wineValueInUsdc.toString(), + price: winePriceInUsdc, + weight: 0.0 + }, + GRAPE_MIM_LP: { + amount: grapeMIMLPTokenBalance, + value: walletGrapeMimLpUsdcValue.toString(), + price: grapeMimLpUsdcValue, + weight: 0.0 + }, + GRAPE_WINE_LP: { + amount: grapeWineLPTokenBalance, + value: walletGrapeWineLpUsdcValue.toString(), + price: grapeWineLpUsdcValue, + weight: 0.0 + }, + MIM_WINE_LP: { + amount: mimWineLPTokenBalance, + value: walletMimWineLpUsdcValue.toString(), + price: mimWineLpUsdcValue, + weight: 0.0 + }, + }, + buckets: { + NODES_GRAPE: { + amount: grapeNodesBalance, + value: grapeNodesValueInUsdc.toString(), + price: grapeNodesPriceInUsdc, + weight: 0.0 + }, + NODES_GRAPE_CLAIMABLE: { + amount: grapeNodesGrapeClaimable, + value: grapeNodesGrapeClaimableValueInUsdc.toString(), + price: grapePriceInUsdc, + weight: 0.0 + }, + NODES_WINE: { + amount: wineNodesBalance, + value: wineNodesValueInUsdc.toString(), + price: wineNodesPriceInUsdc, + weight: 0.0 + }, + NODES_WINE_CLAIMABLE: { + amount: wineNodesWineClaimable, + value: wineNodesWineClaimableValueInUsdc.toString(), + price: winePriceInUsdc, + weight: 0.0 + }, + VINEYARD_GRAPE_MIM_LP_STAKED: { + amount: grapeMimLPStaked, + value: vineyardGrapeMimLpUsdcValue.toString(), + price: grapeMimLpUsdcValue, + weight: 0.0 + }, + VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE: { + amount: vineyardGrapeMimLpWineClaimable, + value: vineyardGrapeMimLpWineClaimableValueInUsdc.toString(), + price: winePriceInUsdc, + weight: 0.0 + }, + VINEYARD_GRAPE_WINE_LP_STAKED: { + amount: grapeWineLPStaked, + value: vineyardGrapeWineLpUsdcValue.toString(), + price: grapeWineLpUsdcValue, + weight: 0.0 + }, + VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE: { + amount: vineyardGrapeWineLpWineClaimable, + value: vineyardGrapeWineLpWineClaimableValueInUsdc.toString(), + price: winePriceInUsdc, + weight: 0.0 + }, + VINEYARD_MIM_WINE_LP_STAKED: { + amount: mimWineLPStaked, + value: vineyardMimWineLpUsdcValue.toString(), + price: mimWineLpUsdcValue, + weight: 0.0 + }, + VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE: { + amount: vineyardWineMimLpWineClaimable, + value: vineyardWineMimLpWineClaimableValueInUsdc.toString(), + price: winePriceInUsdc, + weight: 0.0 + }, + VINEYARD_GRAPE_STAKED: { + amount: vineyardStakedGrape, + value: vineyardStakedGrapeUsdcValue.toString(), + price: grapePriceInUsdc, + weight: 0.0 + }, + VINEYARD_GRAPE_STAKED_WINE_CLAIMABLE: { + amount: vineyardStakedGrapeWineClaimable, + value: vineyardStakedGrapeWineClaimableValueInUsdc.toString(), + price: winePriceInUsdc, + weight: 0.0 + }, + WINERY_GRAPE_CLAIMABLE: { + amount: wineryGrapeClaimable, + value: wineryGrapeClaimableValueInUsdc.toString(), + price: grapePriceInUsdc, + weight: 0.0 + }, + WINERY_WINE_STAKED: { + amount: wineryWineStaked, + value: wineryStakedWineValueInUsdc.toString(), + price: winePriceInUsdc, + weight: 0.0 + } + }, + total: { + value: '0' + } + }; + + let total = 0.0; + + + for (var [k, v] of Object.entries(portfolio)) { + for (var [k2, v2] of Object.entries(v)) { + if (v2.hasOwnProperty('value')) { + // console.log(v2) + total = total + parseFloat(v2["value"]); + } + } + } + + let totalStr = (Math.round(total * 100) / 100).toString(); + // console.log("portfolio total:", total); + portfolio["total"]["value"] = totalStr; + + // set weights + for (var [k, v] of Object.entries(portfolio)) { + for (var [k2, v2] of Object.entries(v)) { + if (v2.hasOwnProperty('weight')) { + // console.log(v2) + v2["weight"] = Math.round((parseFloat(v2["value"]) / total) * 10000) / 100; + } + } + } + + + + + return portfolio; +} + +async function getDelta(before: Balances, after: Balances) { + let delta: Balances = { wallet: {}, buckets: {} } + for (const key in before['wallet']) { + const diff = after['wallet'][key]["amount"] - before['wallet'][key]["amount"]; + if (Math.abs(diff) > 0) { + delta['wallet'][key] = { + amount: 0, + value: "", + price: 0 + } + delta['wallet'][key]["amount"] = after['wallet'][key]["amount"] - before['wallet'][key]["amount"]; + } + } + for (const key in before['buckets']) { + const diff = after['buckets'][key]["amount"] - before['buckets'][key]["amount"]; + if (Math.abs(diff) > 0) { + delta['buckets'][key] = { + amount: 0, + value: "", + price: 0 + } + delta['buckets'][key]["amount"] = after['buckets'][key]["amount"] - before['buckets'][key]["amount"]; + } + } + return delta +} + +async function getBucketsValueDiff(balances: Balances, comparable: number) { + let delta: Balances = { wallet: {}, buckets: {} } + + for (const key in balances['buckets']) { + const diff = comparable - parseFloat(balances['buckets'][key]["value"]); + + delta['buckets'][key] = { + amount: 0, + value: "", + price: 0 + } + delta["buckets"][key]["value"] = (diff.toString()); + + } + return delta +} + +function getSmallestAsset(balances: Balances) { + // console.log('getting smallest LP...'); + let smallestValue = null; + let smallestKey = ''; + // + for (var [k, v] of Object.entries(balances["buckets"])) { + if (k === 'VINEYARD_GRAPE_MIM_LP_STAKED' || k === 'VINEYARD_GRAPE_WINE_LP_STAKED' || k === 'VINEYARD_MIM_WINE_LP_STAKED' || k === 'VINEYARD_GRAPE_STAKED' || k === 'WINERY_WINE_STAKED') { + if (!smallestValue) { + smallestValue = parseFloat(v.value); + smallestKey = k; + } + else { + if (parseFloat(v.value) < smallestValue) { + smallestValue = parseFloat(v.value); + smallestKey = k; + } + } + } + } + + const smallestAsset = { + k: smallestKey, + v: smallestValue + } + + return smallestAsset; +} + +task("conversionrate", "execute task Conversion Rate") + .addParam("protocol", "protocol to be operated with") + .addParam("tokenin", "tokenIn") + .addParam("tokenout", "tokenOut") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + const account: SignerWithAddress = await getAccount(); + const tokenIn: string = taskArgs["tokenIn"]; + const tokenOut: string = taskArgs["tokenOut"]; + /* + const result = await getBalances(); + const transactionCurrencyUnit = new CurrencyUnit({ name: tokenIn, symbol: tokenIn, digits: 18 }); + const referenceCurrencyUnit = new CurrencyUnit({ name: tokenOut, symbol: tokenOut, digits: 6 }); + const cr = new ConversionRate({transactionCurrency:transactionCurrencyUnit, referenceCurrency:referenceCurrencyUnit}) + console.log(cr); + // const tokenInAddress = registry.findToken(tokenin).address; + // const tokenOutAddress = registry.findToken(tokenout).address; + // cr.fetchRate(!) + */ + }); + +task("journal", "execute task Journal") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + + + const ledger = new Ledger({ filename: 'ledger' }); + // await ledger.createJournalFile(); + + const balances = await getBalances(); + // await ledger.setInitialBalances(balances); + // await ledger.setPricingInfo(balances); + + // await ledger.printBalanceSheet(); + // await ledger.getPnL(); + + }); + +task("checkfunds", "execute task Check Funds") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + const account: SignerWithAddress = await getAccount(); + // await checkFunds(account.address); + const result = await getBalances(); + console.log(result); + + }); + +task("claim", "execute task Claim") + .addParam("protocol", "protocol to be operated with") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeArgs = { + protocol: safeProtocolId + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + await claimExecutor(new ClaimTask({ + name: "claim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'entityName', hre: hre.ethers } + }), safeArgs); + }); + +task("withdraw", "execute task Claim") + .addParam("protocol", "protocol to be operated with") + .addParam("amount", "amount to withdraw") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + const ONE = 1; + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + amount: taskArgs["amount"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = OldMoney.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeArgs = { + protocol: safeProtocolId, + amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + await withdrawExecutor(new WithdrawTask({ + name: "claim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'entityName', hre: hre.ethers } + }), safeArgs); + }); + +task("swapnative", "execute task Swap Native") + .addParam("protocol", "protocol to be operated with") + .addParam("tokenin", "token-in name") + .addParam("tokenout", "token-out name") + .addParam("amount", "amount of tokens to swap") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + amount: taskArgs["amount"], + tokenin: taskArgs["tokenin"], + tokenout: taskArgs["tokenout"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = OldMoney.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeTokenInAddress = registry.findToken(unsafeArgs.tokenin).address; + const safeTokenOutAddress = registry.findToken(unsafeArgs.tokenout).address; + const safeArgs = { + protocol: safeProtocolId, + tokenInAddress: safeTokenInAddress, + tokenOutAddress: safeTokenOutAddress, + amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + await swapNativeExecutor(new SwapNativeTask({ + name: "swapnative", + context: { address: account.address, provider: hre.ethers.provider, chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'entityName', hre: hre.ethers } + }), safeArgs); + }); + +task("swaptokens", "execute task Swap Tokens") + .addParam("protocol", "protocol to be operated with") + .addParam("tokenin", "token-in name") + .addParam("tokenout", "token-out name") + .addParam("amount", "amount of tokens to swap") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + amount: taskArgs["amount"], + tokenin: taskArgs["tokenin"], + tokenout: taskArgs["tokenout"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = OldMoney.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeTokenInAddress = registry.findToken(unsafeArgs.tokenin).address; + const safeTokenOutAddress = registry.findToken(unsafeArgs.tokenout).address; + const safeArgs = { + protocol: safeProtocolId, + tokenInAddress: safeTokenInAddress, + tokenOutAddress: safeTokenOutAddress, + amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + await swapTokensExecutor(new SwapTokensTask({ + name: "swaptokens", + context: { address: account.address, provider: hre.ethers.provider, chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'entityName', hre: hre.ethers } + }), safeArgs); + }); + + +task("addliquidity", "execute task Add Liquidity") + .addParam("protocol", "protocol to be operated with") + .addParam("token1", "token-1 name") + .addParam("token2", "token-2 name") + .addParam("amount1", "amount-1 of tokens to provide") + .addParam("amount2", "amount-2 of tokens to provide") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + amount1: taskArgs["amount1"], + amount2: taskArgs["amount2"], + token1: taskArgs["token1"], + token2: taskArgs["token2"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount1 = OldMoney.toSafeMoneyWithLimit(unsafeArgs.amount1); + const safeAmount2 = OldMoney.toSafeMoneyWithLimit(unsafeArgs.amount2); + const safeToken1Address = registry.findToken(unsafeArgs.token1).address; + const safeToken2Address = registry.findToken(unsafeArgs.token2).address; + const safeArgs = { + protocol: safeProtocolId, + token1Address: safeToken1Address, + token2Address: safeToken2Address, + amount1: safeAmount1, + amount2: safeAmount2 + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + await addLiquidityExecutor(new AddLiquidityTask({ + name: "addliquidity", + context: { address: account.address, provider: hre.ethers.provider, chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'entityName', hre: hre.ethers } + }), safeArgs); + }); + +task("removeliquidity", "execute task Remove Liquidity") + .addParam("protocol", "protocol to be operated with") + .addParam("token1", "token-1 name") + .addParam("token2", "token-2 name") + .addParam("liquiditypair", "name of the liquidity pair") + .addParam("amount", "amount of liquidity to be removed") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + token1: taskArgs["token1"], + token2: taskArgs["token2"], + amount: taskArgs["amount"], + liquidityPair: taskArgs["liquiditypair"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = OldMoney.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeToken1Address = registry.findToken(unsafeArgs.token1).address; + const safeToken2Address = registry.findToken(unsafeArgs.token2).address; + const safeLiquidityPair = registry.findToken(unsafeArgs.liquidityPair).id; + const safeArgs = { + protocol: safeProtocolId, + token1Address: safeToken1Address, + token2Address: safeToken2Address, + liquidityPair: safeLiquidityPair, + amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + await removeLiquidityExecutor(new RemoveLiquidityTask({ + name: "removeliquidity", + context: { address: account.address, provider: hre.ethers.provider, chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'entityName', hre: hre.ethers } + }), safeArgs); + }); + +task("buynode", "execute task Buy Node") + .addParam("protocol", "protocol to be operated with") + .addParam("amount", "amount of nodes to buy") + .addParam("node", "type of node (eg: grape, wine...)") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + node: taskArgs["node"], + amount: taskArgs["amount"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = OldMoney.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeNodeId = registry.findNode(unsafeArgs.node).id; + const safeArgs = { + protocol: safeProtocolId, + node: safeNodeId, + amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + await buyNodeExecutor(new BuyNodeTask({ + name: "buynode", + context: { address: account.address, provider: hre.ethers.provider, chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'entityName', hre: hre.ethers } + }), safeArgs); + }); + +task("stake", "execute task Stake") + .addParam("protocol", "protocol to be operated with") + .addParam("token", "token to stake") + .addParam("amount", "amount to stake") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + token: taskArgs["token"], + amount: taskArgs["amount"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeTokenId = registry.findToken(unsafeArgs.token).id; + const safeAmount = OldMoney.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeArgs = { + protocol: safeProtocolId, token: safeTokenId, amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + const stake = new StakeTask({ + name: "stake", + context: { address: account.address, provider: hre.ethers.provider, chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'entityName', hre: hre.ethers } + }); + await stakeExecutor(stake, safeArgs); + }); + +task("deposit", "execute task Deposit") + .addParam("protocol", "protocol to be operated with") + .addParam("liquiditypair", "name of the liquidity pair") + .addParam("amount", "amount to stake") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + amount: taskArgs["amount"], + liquidityPair: taskArgs["liquiditypair"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safeAmount = OldMoney.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeLiquidityPairId = registry.findToken(unsafeArgs.liquidityPair).id; + const safeArgs = { + protocol: safeProtocolId, + amount: safeAmount, + liquidityPair: safeLiquidityPairId + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + await depositExecutor(new DepositTask({ + name: "deposit", + context: { address: account.address, provider: hre.ethers.provider, chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'entityName', hre: hre.ethers } + }), safeArgs); + }); + +task("poolclaim", "execute task Claim") + .addParam("protocol", "protocol to be operated with") + .addParam("pool", "pool to be operated with") + .addParam("amount", "amount to stake") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + protocol: taskArgs["protocol"], + pool: taskArgs["pool"], + amount: taskArgs["amount"] + }; + const safeProtocolId = registry.findProtocol(unsafeArgs.protocol).id; + const safePool = registry.findPool(unsafeArgs.pool).id; + const safeAmount = OldMoney.toSafeMoneyWithLimit(unsafeArgs.amount); + const safeArgs = { + protocol: safeProtocolId, pool: safePool, amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + const account: SignerWithAddress = await getAccount(); + const entity = registry.getEntityData(safeProtocolId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider, chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'entityName', hre: hre.ethers } + }), safeArgs); + }); + +task("pay", "run the pay task") + .addParam("person", "set a person to be payed") + .addParam("amount", "set an amount") + .addParam("origin", "set the origin asset which will be normalized to be transferred") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + console.log("running pay flow...") + + let taskSummary: Array = []; + /////////////////////////////////////////////////////////////////// + + + const safeTraderJoeId = registry.findProtocol("traderjoe").id; + const safeVineyardId = registry.findProtocol("grapefinance-vineyard").id; + const safeWineryId = registry.findProtocol("grapefinance-winery").id; + const safeGrapeMIMPoolId = "grapemimlp"; + const safeMIMWinePoolId = "mimwinelp"; + const safeGrapeWinePoolId = "grapewinelp"; + const safeNodeWineId = "grapefinance-winenode"; + const safeNodeGrapeId = "grapefinance-grapenode"; + + const traderJoeContractAddress = registry.findProtocol("traderjoe").address; + + const grapeTokenAddress = registry.findToken("grape").address; + const wineTokenAddress = registry.findToken("wine").address; + const mimTokenAddress = registry.findToken("mim").address; + const usdcTokenAddress = registry.findToken("usdc").address + const grapeWineLPTokenAddress = registry.findToken("grape-wine-lp").address; + const mimWineLPTokenAddress = registry.findToken("mim-wine-lp").address; + const grapeMIMLPTokenAddress = registry.findToken("grape-mim-lp").address; + + const traderJoeContract = await ethers.getContractAt(TRADERJOE_ABI, traderJoeContractAddress); + + const grapeTokenContract = await ethers.getContractAt(ERC20_ABI, grapeTokenAddress); + const wineTokenContract = await ethers.getContractAt(ERC20_ABI, wineTokenAddress); + const mimTokenContract = await ethers.getContractAt(ERC20_ABI, mimTokenAddress); + const grapeMIMLPTokenContract = await ethers.getContractAt(ERC20_ABI, grapeMIMLPTokenAddress); + const grapeWineLPTokenContract = await ethers.getContractAt(ERC20_ABI, grapeWineLPTokenAddress); + const mimWineLPTokenContract = await ethers.getContractAt(ERC20_ABI, mimWineLPTokenAddress); + + const account: SignerWithAddress = await getAccount(); + const accountAddress = account.address; + let entity = registry.getEntityData(safeVineyardId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + + //// GET INITIAL BALANCE STATE + let balanceState = await getBalances(); + console.log('balanceState:', balanceState); + + //// GET PERSON + let person = ""; + + if (taskArgs["person"]) { + person = registry.findPayrollAccount(taskArgs['person']).id; + + + } else { + throw ('person not found / not defined'); + } + + console.log('HEY!'); + console.log(registry.findPayrollAccount(person).address); + + if (registry.findPayrollAccount(person).address === "0x") { + throw ('(!) Address not set. Check .env file'); + } + + + //// GET AMOUNT + let amount = 0.0; + + if (taskArgs["amount"]) { + try { + amount = parseFloat(taskArgs['amount']); + } catch { + throw ('amount not a number') + } + + } else { + throw ('amount param needed.'); + } + + //// GET ORIGIN + let origin = ""; + + if (taskArgs["origin"]) { + origin = taskArgs['origin']; + } else { + throw ('origin param needed.'); + } + + console.log('person:', person); + console.log('amount:', amount); + console.log('origin:', origin); + + let assetsWalletValue = 0; + let bucketsValue = 0; + + + + if (origin === 'GRAPE' || origin === 'WINE' || origin === 'MIM') { + assetsWalletValue = assetsWalletValue + parseFloat(balanceState["wallet"][origin].value); + } + + + console.log('assetsWalletValue:', assetsWalletValue); + + if (origin === 'VINEYARD_GRAPE_WINE_LP_STAKED' || origin === 'VINEYARD_MIM_WINE_LP_STAKED"' || origin === 'VINEYARD_GRAPE_MIM_LP_STAKED' || origin === 'VINEYARD_GRAPE_STAKED' || origin === 'WINERY_WINE_STAKED') { + bucketsValue = bucketsValue + parseFloat(balanceState["buckets"][origin].value); + } + + console.log('bucketsValue:', bucketsValue); + + let amountOfGrapeToSwapIntoUsdc = 0.0; + let amountOfWineToSwapIntoUsdc = 0.0; + let amountOfMimToSwapIntoUsdc = 0.0; + + // 1% safety + if (assetsWalletValue && assetsWalletValue < amount * 0.99) { + throw ("the value of the asset is not enough to cover the payable amount (+1% safety)") + } else if ((origin === 'GRAPE' || origin === 'WINE' || origin === 'MIM')) { + // proceed + + const a = parseFloat(balanceState["wallet"][origin]["value"]); + + + if (a > amount) { + // pay in mim + if (origin === 'MIM') { + amountOfMimToSwapIntoUsdc = amount; + } else if (origin === 'WINE') { + amountOfWineToSwapIntoUsdc = amount; + } else if (origin === 'GRAPE') { + amountOfGrapeToSwapIntoUsdc = amount; + } + + + } + } + + let protocol = ''; + let pool = ''; + let token1 = ''; + let token2 = ''; + let lpPair = ''; + let asset = '' + + if (bucketsValue && bucketsValue < amount * 0.99) { + throw ("the value of the asset is not enough to cover the payable amount (+1% safety)") + } else { + // proceed + + // remove from LPs + // 1. determine which one is the smallest LP. + + + const payable = amount; + + if (balanceState["buckets"][origin]) { + const a = parseFloat(balanceState["buckets"][origin]["value"]); + const aP = balanceState["buckets"][origin]["price"]; + + + const buckets = a; + const n = 1; // amount of buckets + + const level = ((buckets) / n) - (payable / n); + + console.log('a:', a); + + console.log('buckets:', buckets); + console.log('n:', n); + console.log('payable:', payable); + + console.log('level:', level); + + + const diff = await getBucketsValueDiff(balanceState, level); + console.log('diff:', diff); + + const aD = parseFloat(diff["buckets"][origin]["value"]); + + // 1. BUCKET + if (aD < 0) { + + const amountOfLPTokensToRemove = Math.ceil((Math.abs(aD) / aP) * 100) / 100; + const safeAmountOfLPTokensToRemove = OldMoney.toBigNumber(amountOfLPTokensToRemove, 18); + + console.log('amountOfGrapeWineLPTokensToRemove:', amountOfLPTokensToRemove) + + + // withdraw liquidity from ORIGIN + + + + + + if (origin === 'VINEYARD_GRAPE_WINE_LP_STAKED') { + protocol = safeVineyardId; + pool = safeGrapeWinePoolId; + token1 = 'grape'; + token2 = 'wine'; + lpPair = 'grape-wine-lp'; + asset = 'GRAPE_WINE_LP'; + + } else if (origin === 'VINEYARD_MIM_WINE_LP_STAKED') { + protocol = safeVineyardId; + pool = safeMIMWinePoolId; + token1 = 'mim'; + token2 = 'wine'; + lpPair = 'mim-wine-lp'; + asset = 'MIM_WINE_LP'; + + } else if (origin === 'VINEYARD_GRAPE_MIM_LP_STAKED') { + protocol = safeVineyardId; + pool = safeGrapeMIMPoolId; + token1 = 'grape'; + token2 = 'mim'; + lpPair = 'grape-mim-lp'; + asset = 'GRAPE_MIM_LP'; + + } else if (origin === 'VINEYARD_GRAPE_STAKED') { + protocol = safeVineyardId; + pool = 'vineyard'; + throw ('not yet implemented'); + token1 = 'grape'; + token2 = ''; + lpPair = 'grape'; + asset = 'GRAPE'; + + } else if (origin === 'WINERY_WINE_STAKED') { + protocol = safeWineryId; + pool = 'winery'; + throw ('not yet implemented'); + token1 = 'wine'; + token2 = ''; + lpPair = ''; + asset = 'WINE'; + + } + + console.log('hey') + console.log('protocol:', protocol) + console.log('pool:', pool); + let safeArgsW = { + protocol: protocol, + pool: pool, + amount: OldMoney.toBigNumber(amountOfLPTokensToRemove, 18) + }; + let entity = registry.getEntityData(safeVineyardId); + console.log("////////////////////////// WITHDRAW LIQUIDITY FROM LP"); + try { + const result = await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'grape_wine_lp', hre: hre.ethers } + }), safeArgsW); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet[asset]["amount"].toFixed(6)); + const msg = `Withdraw [ ${delta} ${asset} ] from ${asset}[tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log(err); + taskSummary.push(`Failed to withdraw liquidity from ${asset} at the Vineyard`) + } + + console.log("////////////////////////// REMOVE LIQUIDITY FROM LP AT TRADERJOE"); + const safeProtocolId = registry.findProtocol("traderjoe").id; + const safeAmount = safeAmountOfLPTokensToRemove; + const safeToken1Address = registry.findToken(token1).address; + const safeToken2Address = registry.findToken(token2).address; + const safeLiquidityPair = registry.findToken(lpPair).id; + const safeArgs = { + protocol: safeProtocolId, + token1Address: safeToken1Address, + token2Address: safeToken2Address, + liquidityPair: safeLiquidityPair, + amount: safeAmount + }; + entity = registry.getEntityData(safeProtocolId); + /////////////////////////////////////////////////////////////////// + + try { + const result = await removeLiquidityExecutor(new RemoveLiquidityTask({ + name: "removeliquidity", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'grape_wine_lp', hre: hre.ethers } + }), safeArgs); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + + const grapeWineDelta = result.delta.wallet["GRAPE_WINE_LP"] ? Math.abs(result.delta.wallet["GRAPE_WINE_LP"]["amount"].toFixed(6)) : 0.0; + const mimWineDelta = result.delta.wallet["MIM_WINE_LP"] ? Math.abs(result.delta.wallet["MIM_WINE_LP"]["amount"].toFixed(6)) : 0.0; + const grapeMimDelta = result.delta.wallet["GRAPE_MIM_LP"] ? Math.abs(result.delta.wallet["GRAPE_MIM_LP"]["amount"].toFixed(6)) : 0.0; + const grapeDelta = result.delta.wallet["GRAPE"] ? Math.abs(result.delta.wallet["GRAPE"]["amount"].toFixed(6)) : 0.0; + const wineDelta = result.delta.wallet["WINE"] ? Math.abs(result.delta.wallet["WINE"]["amount"].toFixed(6)) : 0.0; + const mimDelta = result.delta.wallet["MIM"] ? Math.abs(result.delta.wallet["MIM"]["amount"].toFixed(6)) : 0.0; + + amountOfGrapeToSwapIntoUsdc = amountOfGrapeToSwapIntoUsdc + grapeDelta; + amountOfWineToSwapIntoUsdc = amountOfWineToSwapIntoUsdc + wineDelta; + amountOfMimToSwapIntoUsdc = amountOfMimToSwapIntoUsdc + mimDelta; + + console.log('amountOfGrapeToSwapIntoUsdc:', amountOfGrapeToSwapIntoUsdc); + console.log('amountOfWineToSwapIntoUsdc:', amountOfWineToSwapIntoUsdc); + console.log('amountOfMimToSwapIntoUsdc:', amountOfMimToSwapIntoUsdc); + + // const msg = `Removed [ ${grapeWineDelta} GRAPE-WINE-LP ] for [${grapeDelta} GRAPE] and [${wineDelta} WINE] from Trader Joe [tx: ${explorerLink} ]`; + const msg = `Removed LP from TraderJoe [tx: ${explorerLink} ]` + taskSummary.push(msg) + // taskSummary.push("Removed Liquidity from GRAPE-WINE-LP") + + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to Remove Liquidity from LP") + } + + } + + } + + + + + + + + } + + //////////////////////////////// SWAPS FOR MIM + + let mimPriceInUsdc = await traderJoeContract.getAmountsOut(OldMoney.toSafeMoneyWithLimit(1), [mimTokenAddress, usdcTokenAddress]); + mimPriceInUsdc = ethers.utils.formatUnits(mimPriceInUsdc[1], 6); + + const safeAmountOfGrapeToSwapIntoUsdc = OldMoney.toBigNumber(amountOfGrapeToSwapIntoUsdc, 18); + const safeAmountOfWineToSwapIntoUsdc = OldMoney.toBigNumber(amountOfWineToSwapIntoUsdc, 18); + const safeAmountOfMimToSwapIntoUsdc = OldMoney.toBigNumber(amountOfMimToSwapIntoUsdc, 18); + + const amountOfGrapeToSwapIntoMim = amountOfGrapeToSwapIntoUsdc / mimPriceInUsdc; + const safeAmountOfGrapeToSwapIntoMim = OldMoney.toBigNumber(amountOfGrapeToSwapIntoMim, 18); + + const amountOfWineToSwapIntoMim = amountOfWineToSwapIntoUsdc / mimPriceInUsdc; + const safeAmountOfWineToSwapIntoMim = OldMoney.toBigNumber(amountOfWineToSwapIntoMim, 18); + + + console.log('mimPriceInUsdc:', mimPriceInUsdc); + + console.log('amountOfGrapeToSwapIntoUsdc:', amountOfGrapeToSwapIntoUsdc); + console.log('amountOfGrapeToSwapIntoMim :', amountOfGrapeToSwapIntoMim); + + console.log('amountOfWineToSwapIntoUsdc:', amountOfWineToSwapIntoUsdc); + console.log('amountOfWineToSwapIntoMim :', amountOfWineToSwapIntoMim); + + // SWAP GRAPE FOR MIM + if (origin) { + + if (amountOfGrapeToSwapIntoMim > 0) { + const safeArgsA = { + protocol: safeTraderJoeId, + tokenInAddress: grapeTokenAddress, + tokenOutAddress: mimTokenAddress, + amount: safeAmountOfGrapeToSwapIntoMim + }; + + console.log("//////////////////////////SWAP GRAPE FOR MIM AT TRADERJOE"); + try { + const result = await swapTokensExecutor( + new SwapTokensTask({ + name: "swaptokens", + context: { + address: account.address, + provider: hre.ethers.provider, + chain: chain, + run: EnvUtil.toNumber(FLOW_05_RUN_ID) + }, entity: { ABI: entity.ABI, address: entity.address, name: 'trade', hre: hre.ethers } + }), + safeArgsA); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const grapeDelta = Math.abs(result.delta.wallet["GRAPE"]["amount"].toFixed(6)); + const mimDelta = Math.abs(result.delta.wallet["MIM"]["amount"].toFixed(6)); + const msg = `Swapped [ ${grapeDelta} GRAPE ] for [ ${mimDelta} MIM] at Trader Joe [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to swap GRAPE for MIM at Trader Joe") + } + } + } + if (origin) { + + if (amountOfWineToSwapIntoMim > 0) { + const safeArgsA = { + protocol: safeTraderJoeId, + tokenInAddress: wineTokenAddress, + tokenOutAddress: mimTokenAddress, + amount: safeAmountOfWineToSwapIntoMim + }; + + console.log("//////////////////////////SWAP WINE FOR MIM AT TRADERJOE"); + try { + const result = await swapTokensExecutor( + new SwapTokensTask({ + name: "swaptokens", + context: { + address: account.address, + provider: hre.ethers.provider, + chain: chain, + run: EnvUtil.toNumber(FLOW_05_RUN_ID) + }, entity: { ABI: entity.ABI, address: entity.address, name: 'trade', hre: hre.ethers } + }), + safeArgsA); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const wineDelta = Math.abs(result.delta.wallet["WINE"]["amount"].toFixed(6)); + const mimDelta = Math.abs(result.delta.wallet["MIM"]["amount"].toFixed(6)); + const msg = `Swapped [ ${wineDelta} WINE ] for [ ${mimDelta} MIM] at Trader Joe [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to swap WINE for MIM at Trader Joe") + } + } + } + + + // SEND MIM + console.log("////////////////////////// SEND MIM TO PERSON"); + + let balancesBeforeTx = await getBalances(); + console.log('balances before tx:', balancesBeforeTx); + + let receiverAddress = registry.findPayrollAccount(person).address; + let receiverAmount = Math.round((amount / mimPriceInUsdc) * 100) / 100; + + console.log('receiverAddress:', receiverAddress); + console.log('receiverAmount:', receiverAmount); + + let bnAmount = OldMoney.toBigNumber(receiverAmount, 18); + + let tx = { + to: receiverAddress, + value: bnAmount + } + + let theTx = await mimTokenContract.connect(account).transfer(receiverAddress, bnAmount) + theTx.wait(); + console.log('theTx:', theTx); + + + + + + let balancesAfterTx = await getBalances(); + console.log('balances after tx:', balancesAfterTx); + + + + + }) + +task("payroll", "run the payroll flow") + .addOptionalParam("michael", "michael's payroll amount") + .addOptionalParam("matt", "matt's payroll amount") + .addOptionalParam("mukhtar", "mukhtar's payroll amount") + .addOptionalParam("dan", "dan's payroll amount") + .setAction(async (taskArgs, hre) => { + + let michaelPayrollAmount = 0.0; + let mattPayrollAmount = 0.0; + let mukhtarPayrollAmount = 0.0; + let danPayrollAmount = 0.0; + + if (taskArgs["michael"]) { + michaelPayrollAmount = parseFloat(taskArgs["michael"]); + } else { + michaelPayrollAmount = parseFloat(registry.findPayrollAccount('michael').amount); + } + + if (taskArgs["matt"]) { + mattPayrollAmount = parseFloat(taskArgs["matt"]); + + } else { + mattPayrollAmount = parseFloat(registry.findPayrollAccount('matt').amount); + } + + if (taskArgs["mukhtar"]) { + mukhtarPayrollAmount = parseFloat(taskArgs["mukhtar"]); + } else { + mukhtarPayrollAmount = parseFloat(registry.findPayrollAccount('mukhtar').amount); + } + + if (taskArgs["dan"]) { + danPayrollAmount = parseFloat(taskArgs["dan"]); + } else { + danPayrollAmount = parseFloat(registry.findPayrollAccount('dan').amount); + } + + + setEnvironment(hre); + console.log("running pay flow...") + let taskSummary: Array = []; + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + F4T1A: FLOW_04_TASK_01_MIN_AMOUNT_OF_MIM_TO_START, + F4T1B: FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_REWARDS_TO_START, + F4T1E: FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_IN_WALLET, + F4T1F: FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_GRAPE_LP, + F4T1G: FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_MIM_LP + }; + + const safeF4T1A = EnvUtil.toNumber(unsafeArgs.F4T1A); + const safeF4T1B = EnvUtil.toNumber(unsafeArgs.F4T1B); + const safeF4T1D = OldMoney.toSafeMoneyWithLimit(0); // by default, we don't withdraw from the LP by default when we claim + const safeF4T1E = EnvUtil.toNumber(unsafeArgs.F4T1E); + const safeF4T1F = EnvUtil.toNumber(unsafeArgs.F4T1F); + const safeF4T1G = EnvUtil.toNumber(unsafeArgs.F4T1F); + + const safeTraderJoeId = registry.findProtocol("traderjoe").id; + const safeVineyardId = registry.findProtocol("grapefinance-vineyard").id; + const safeWineryId = registry.findProtocol("grapefinance-winery").id; + const safeGrapeMIMPoolId = "grapemimlp"; + const safeMIMWinePoolId = "mimwinelp"; + const safeGrapeWinePoolId = "grapewinelp"; + const safeNodeWineId = "grapefinance-winenode"; + const safeNodeGrapeId = "grapefinance-grapenode"; + + const traderJoeContractAddress = registry.findProtocol("traderjoe").address; + + const grapeTokenAddress = registry.findToken("grape").address; + const wineTokenAddress = registry.findToken("wine").address; + const mimTokenAddress = registry.findToken("mim").address; + const usdcTokenAddress = registry.findToken("usdc").address + const grapeWineLPTokenAddress = registry.findToken("grape-wine-lp").address; + const mimWineLPTokenAddress = registry.findToken("mim-wine-lp").address; + const grapeMIMLPTokenAddress = registry.findToken("grape-mim-lp").address; + + const traderJoeContract = await ethers.getContractAt(TRADERJOE_ABI, traderJoeContractAddress); + + const grapeTokenContract = await ethers.getContractAt(ERC20_ABI, grapeTokenAddress); + const wineTokenContract = await ethers.getContractAt(ERC20_ABI, wineTokenAddress); + const mimTokenContract = await ethers.getContractAt(ERC20_ABI, mimTokenAddress); + const grapeMIMLPTokenContract = await ethers.getContractAt(ERC20_ABI, grapeMIMLPTokenAddress); + const grapeWineLPTokenContract = await ethers.getContractAt(ERC20_ABI, grapeWineLPTokenAddress); + const mimWineLPTokenContract = await ethers.getContractAt(ERC20_ABI, mimWineLPTokenAddress); + + const account: SignerWithAddress = await getAccount(); + const accountAddress = account.address; + let entity = registry.getEntityData(safeVineyardId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + + let balanceState = await getBalances(); + console.log('balanceState:', balanceState); + + // 1. Calc the value of GRAPE, WINE, MIM in wallet + + // let salariesValue = registry.getPayrollValue(); + let salariesValue = michaelPayrollAmount + mattPayrollAmount + mukhtarPayrollAmount + danPayrollAmount; + console.log("salariesValue:", salariesValue); + + let assetsWalletValue = 0.0; + let bucketsValue = 0.0; + + for (var [k, v] of Object.entries(balanceState["wallet"])) { + if (k === 'GRAPE' || k === 'WINE' || k === 'MIM') { + assetsWalletValue = assetsWalletValue + parseFloat(v.value); + } + + } + console.log('assetsWalletValue:', assetsWalletValue); + + for (var [k, v] of Object.entries(balanceState["buckets"])) { + if (k === 'VINEYARD_GRAPE_WINE_LP_STAKED' || k === 'VINEYARD_MIM_WINE_LP_STAKED"' || k === 'VINEYARD_GRAPE_MIM_LP_STAKED' || k === 'VINEYARD_GRAPE_STAKED' || k === 'WINERY_WINE_STAKED') { + bucketsValue = bucketsValue + parseFloat(v.value); + } + } + console.log('bucketsValue:', bucketsValue); + + let amountOfGrapeToSwapIntoUsdc = 0.0; + let amountOfWineToSwapIntoUsdc = 0.0; + let amountOfMimToSwapIntoUsdc = 0.0; + + if ((bucketsValue + assetsWalletValue) < salariesValue) { + throw ("the amount of value in wallet+buckets is not enough to cover the salaries value.") + } + + if (assetsWalletValue < salariesValue) { + // remove from LPs + // 1. determine which one is the smallest LP. + + + const payable = salariesValue; + + const a = parseFloat(balanceState["buckets"]["VINEYARD_GRAPE_WINE_LP_STAKED"]["value"]); + const b = parseFloat(balanceState["buckets"]["VINEYARD_MIM_WINE_LP_STAKED"]["value"]); + const c = parseFloat(balanceState["buckets"]["VINEYARD_GRAPE_MIM_LP_STAKED"]["value"]); + const d = parseFloat(balanceState["buckets"]["VINEYARD_GRAPE_STAKED"]["value"]); + const e = parseFloat(balanceState["buckets"]["WINERY_WINE_STAKED"]["value"]); + + const aP = balanceState["buckets"]["VINEYARD_GRAPE_WINE_LP_STAKED"]["price"]; + const bP = balanceState["buckets"]["VINEYARD_MIM_WINE_LP_STAKED"]["price"]; + const cP = balanceState["buckets"]["VINEYARD_GRAPE_MIM_LP_STAKED"]["price"]; + const dP = balanceState["buckets"]["VINEYARD_GRAPE_STAKED"]["price"]; + const eP = balanceState["buckets"]["WINERY_WINE_STAKED"]["price"]; + + const buckets = a + b + c + d + e; + const n = 5; // amount of buckets + + const level = ((buckets) / n) - (payable / n); + + console.log('a:', a); + console.log('b:', b); + console.log('c:', c); + console.log('d:', d); + console.log('e:', e); + + console.log('buckets:', buckets); + console.log('n:', n); + console.log('payable:', payable); + + console.log('level:', level); + + + const diff = await getBucketsValueDiff(balanceState, level); + console.log('diff:', diff); + + const aD = parseFloat(diff["buckets"]["VINEYARD_GRAPE_WINE_LP_STAKED"]["value"]); + const bD = parseFloat(diff["buckets"]["VINEYARD_MIM_WINE_LP_STAKED"]["value"]); + const cD = parseFloat(diff["buckets"]["VINEYARD_GRAPE_MIM_LP_STAKED"]["value"]); + const dD = parseFloat(diff["buckets"]["VINEYARD_GRAPE_STAKED"]["value"]); + const eD = parseFloat(diff["buckets"]["WINERY_WINE_STAKED"]["value"]); + + // 1. GRAPE-WINE-LP + if (aD < 0) { + + const amountOfGrapeWineLPTokensToRemove = Math.ceil((Math.abs(aD) / aP) * 100) / 100; + const safeAmountOfGrapeWineLPTokensToRemove = OldMoney.toBigNumber(amountOfGrapeWineLPTokensToRemove, 18); + + console.log('amountOfGrapeWineLPTokensToRemove:', amountOfGrapeWineLPTokensToRemove) + + + // withdraw liquidity from GRAPE-WINE-LP at the Vineyard + + + let safeArgsW = { + protocol: safeVineyardId, + pool: safeGrapeWinePoolId, + amount: OldMoney.toBigNumber(amountOfGrapeWineLPTokensToRemove, 18) + }; + let entity = registry.getEntityData(safeVineyardId); + console.log("////////////////////////// WITHDRAW LIQUIDITY FROM GRAPE-WINE-LP AT VINEYARD"); + try { + const result = await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'grape_wine_lp', hre: hre.ethers } + }), safeArgsW); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["GRAPE_WINE_LP"]["amount"].toFixed(6)); + const msg = `Withdraw [ ${delta} GRAPE-WINE-LP ] from GRAPE-WINE-LP at the Vineyard [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log(err); + taskSummary.push("Failed to withdraw liquidity from GRAPE-WINE-LP at the Vineyard") + } + + console.log("////////////////////////// REMOVE LIQUIDITY FROM GRAPE-WINE-LP AT TRADERJOE"); + const safeProtocolId = registry.findProtocol("traderjoe").id; + const safeAmount = safeAmountOfGrapeWineLPTokensToRemove; + const safeToken1Address = registry.findToken("grape").address; + const safeToken2Address = registry.findToken("wine").address; + const safeLiquidityPair = registry.findToken("grape-wine-lp").id; + const safeArgs = { + protocol: safeProtocolId, + token1Address: safeToken1Address, + token2Address: safeToken2Address, + liquidityPair: safeLiquidityPair, + amount: safeAmount + }; + entity = registry.getEntityData(safeProtocolId); + /////////////////////////////////////////////////////////////////// + + try { + const result = await removeLiquidityExecutor(new RemoveLiquidityTask({ + name: "removeliquidity", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'grape_wine_lp', hre: hre.ethers } + }), safeArgs); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const grapeWineDelta = Math.abs(result.delta.wallet["GRAPE_WINE_LP"]["amount"].toFixed(6)); + const grapeDelta = Math.abs(result.delta.wallet["GRAPE"]["amount"].toFixed(6)); + const wineDelta = Math.abs(result.delta.wallet["WINE"]["amount"].toFixed(6)); + + amountOfGrapeToSwapIntoUsdc = amountOfGrapeToSwapIntoUsdc + grapeDelta; + amountOfWineToSwapIntoUsdc = amountOfWineToSwapIntoUsdc + wineDelta; + + const msg = `Removed [ ${grapeWineDelta} GRAPE-WINE-LP ] for [${grapeDelta} GRAPE] and [${wineDelta} WINE] from Trader Joe [tx: ${explorerLink} ]`; + taskSummary.push(msg) + // taskSummary.push("Removed Liquidity from GRAPE-WINE-LP") + + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to Remove Liquidity from GRAPE-WINE-LP") + } + + + + + + } + + // 2. MIM-WINE-LP + if (bD < 0) { + + const amountOfMimWineLPTokensToRemove = Math.ceil((Math.abs(bD) / bP) * 100) / 100; + const safeAmountOfMimWineLPTokensToRemove = OldMoney.toBigNumber(amountOfMimWineLPTokensToRemove, 18); + + console.log('amountOfMimWineLPTokensToRemove:', amountOfMimWineLPTokensToRemove) + + + let safeArgsW = { + protocol: safeVineyardId, + pool: safeMIMWinePoolId, + amount: OldMoney.toBigNumber(amountOfMimWineLPTokensToRemove, 18) + }; + let entity = registry.getEntityData(safeVineyardId); + console.log("////////////////////////// WITHDRAW LIQUIDITY FROM MIM-WINE-LP AT VINEYARD"); + try { + const result = await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'mim_wine_lp', hre: hre.ethers } + }), safeArgsW); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["MIM_WINE_LP"]["amount"].toFixed(6)); + const msg = `Withdraw [ ${delta} MIM-WINE-LP ] from MIM-WINE-LP at the Vineyard [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log(err); + taskSummary.push("Failed to withdraw liquidity from MIM-WINE-LP at the Vineyard") + } + + console.log("////////////////////////// REMOVE LIQUIDITY FROM MIM-WINE-LP AT TRADERJOE"); + const safeProtocolId = registry.findProtocol("traderjoe").id; + const safeAmount = safeAmountOfMimWineLPTokensToRemove; + const safeToken1Address = registry.findToken("mim").address; + const safeToken2Address = registry.findToken("wine").address; + const safeLiquidityPair = registry.findToken("mim-wine-lp").id; + const safeArgs = { + protocol: safeProtocolId, + token1Address: safeToken1Address, + token2Address: safeToken2Address, + liquidityPair: safeLiquidityPair, + amount: safeAmount + }; + entity = registry.getEntityData(safeProtocolId); + /////////////////////////////////////////////////////////////////// + + try { + const result = await removeLiquidityExecutor(new RemoveLiquidityTask({ + name: "removeliquidity", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'mim_wine_lp', hre: hre.ethers } + }), safeArgs); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const mimWineDelta = Math.abs(result.delta.wallet["MIM_WINE_LP"]["amount"].toFixed(6)); + const mimDelta = Math.abs(result.delta.wallet["MIM"]["amount"].toFixed(6)); + const wineDelta = Math.abs(result.delta.wallet["WINE"]["amount"].toFixed(6)); + + amountOfMimToSwapIntoUsdc = amountOfMimToSwapIntoUsdc + mimDelta; + amountOfWineToSwapIntoUsdc = amountOfWineToSwapIntoUsdc + wineDelta; + + const msg = `Removed [ ${mimWineDelta} MIM-WINE-LP ] for [${mimDelta} MIM] and [${wineDelta} WINE] from Trader Joe [tx: ${explorerLink} ]`; + taskSummary.push(msg); + // taskSummary.push("Removed Liquidity from MIM-WINE-LP") + } catch (err) { + console.log("--> error:"); + console.log(err); + taskSummary.push("Failed to Remove Liquidity from MIM-WINE-LP") + } + + + } + + // 3. GRAPE-MIM-LP + if (cD < 0) { + + const amountOfGrapeMimLPTokensToRemove = Math.ceil((Math.abs(cD) / cP) * 100) / 100; + const safeAmountOfGrapeMimLPTokensToRemove = OldMoney.toBigNumber(amountOfGrapeMimLPTokensToRemove, 18); + + console.log('amountOfGrapeMimLPTokensToRemove:', amountOfGrapeMimLPTokensToRemove) + + let safeArgsW = { + protocol: safeVineyardId, + pool: safeGrapeMIMPoolId, + amount: OldMoney.toBigNumber(amountOfGrapeMimLPTokensToRemove, 18) + }; + let entity = registry.getEntityData(safeVineyardId); + console.log("////////////////////////// WITHDRAW LIQUIDITY FROM GRAPE-MIM-LP AT VINEYARD"); + try { + const result = await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'grape_mim_lp', hre: hre.ethers } + }), safeArgsW); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["GRAPE_MIM_LP"]["amount"].toFixed(6)); + const msg = `Withdraw [ ${delta} GRAPE-MIM-LP ] from GRAPE-MIM-LP at the Vineyard [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log(err); + taskSummary.push("Failed to withdraw liquidity from GRAPE-MIM-LP at the Vineyard") + } + + console.log("////////////////////////// REMOVE LIQUIDITY FROM GRAPE-MIM-LP AT TRADERJOE"); + const safeProtocolId = registry.findProtocol("traderjoe").id; + const safeAmount = safeAmountOfGrapeMimLPTokensToRemove; + const safeToken1Address = registry.findToken("grape").address; + const safeToken2Address = registry.findToken("mim").address; + const safeLiquidityPair = registry.findToken("grape-mim-lp").id; + const safeArgs = { + protocol: safeProtocolId, + token1Address: safeToken1Address, + token2Address: safeToken2Address, + liquidityPair: safeLiquidityPair, + amount: safeAmount + }; + entity = registry.getEntityData(safeProtocolId); + /////////////////////////////////////////////////////////////////// + + try { + const result = await removeLiquidityExecutor(new RemoveLiquidityTask({ + name: "removeliquidity", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'grape_mim_lp', hre: hre.ethers } + }), safeArgs); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const grapeMimDelta = Math.abs(result.delta.wallet["GRAPE_MIM_LP"]["amount"].toFixed(6)); + const grapeDelta = Math.abs(result.delta.wallet["GRAPE"]["amount"].toFixed(6)); + const mimDelta = Math.abs(result.delta.wallet["MIM"]["amount"].toFixed(6)); + + amountOfGrapeToSwapIntoUsdc = amountOfGrapeToSwapIntoUsdc + grapeDelta; + amountOfMimToSwapIntoUsdc = amountOfMimToSwapIntoUsdc + mimDelta; + + const msg = `Removed [ ${grapeMimDelta} GRAPE-MIM-LP ] for [${grapeDelta} GRAPE] and [${mimDelta} MIM] from Trader Joe [tx: ${explorerLink} ]`; + taskSummary.push(msg); + // taskSummary.push("Removed Liquidity from GRAPE-MIM-LP") + } catch (err) { + console.log("--> error:"); + console.log(err); + taskSummary.push("Failed to Remove Liquidity from GRAPE-MIM-LP"); + } + + } + + // 4. GRAPE-STAKED + if (dD < 0) { + + const amountOfGrapeStakedTokensToRemove = Math.ceil((Math.abs(dD) / dP) * 100) / 100; + const safeAmountOfGrapeStakedTokensToRemove = OldMoney.toBigNumber(amountOfGrapeStakedTokensToRemove, 18); + + console.log('amountOfGrapeStakedTokensToRemove:', amountOfGrapeStakedTokensToRemove); + + // withdraw GRAPE staked at the Vineyard + + + let safeArgsW = { + protocol: safeVineyardId, + pool: "vineyard", + amount: OldMoney.toBigNumber(amountOfGrapeStakedTokensToRemove, 18) + }; + let entity = registry.getEntityData(safeVineyardId); + console.log("////////////////////////// WITHDRAW GRAPE STAKED AT THE VINEYARD"); + try { + const result = await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'grape', hre: hre.ethers } + }), safeArgsW); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["GRAPE"]["amount"].toFixed(6)); + + amountOfGrapeToSwapIntoUsdc = amountOfGrapeToSwapIntoUsdc + delta; + + const msg = `Withdraw [ ${delta} GRAPE ] from VINEYARD_GRAPE_STAKED at the Vineyard [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log(err); + taskSummary.push("Failed to withdraw GRAPE staked at the Vineyard") + } + + + } + + // 5. WINE-STAKED + if (eD < 0) { + + const amountOfWineStakedTokensToRemove = Math.ceil((Math.abs(eD) / eP) * 100) / 100; + const safeAmountOfWineStakedTokensToRemove = OldMoney.toBigNumber(amountOfWineStakedTokensToRemove, 18); + + console.log('amountOfWineStakedTokensToRemove:', amountOfWineStakedTokensToRemove); + + // withdraw GRAPE staked at the Vineyard + + + + + let safeArgsW = { + protocol: safeWineryId, + pool: "winery", + amount: OldMoney.toBigNumber(amountOfWineStakedTokensToRemove, 18) + }; + let entity = registry.getEntityData(safeWineryId); + console.log("////////////////////////// WITHDRAW WINE STAKED AT THE WINERY"); + try { + const result = await withdrawExecutor(new WithdrawTask({ + name: "withdraw", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'wine', hre: hre.ethers } + }), safeArgsW); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["WINE"]["amount"].toFixed(6)); + + amountOfWineToSwapIntoUsdc = amountOfWineToSwapIntoUsdc + delta; + + const msg = `Withdraw [ ${delta} WINE ] from WINERY_WINE_STAKED at the Winery [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log(err); + taskSummary.push("Failed to withdraw WINE staked at the Winery") + } + + } + + + + + + + + // calc what would you obtain removing the others + // if more is needed, divide into n into number of lps and remove equally. + } else { + // check if mim is enough? + // check if grape is enough? + // sell exact wine amount + const a = parseFloat(balanceState["wallet"]["MIM"]["value"]); + const b = parseFloat(balanceState["wallet"]["GRAPE"]["value"]); + const c = parseFloat(balanceState["wallet"]["WINE"]["value"]); + + if (a > salariesValue) { + // pay in mim + amountOfMimToSwapIntoUsdc = salariesValue; + + } else if ((a + b) > salariesValue) { + //sell mim, check what + amountOfMimToSwapIntoUsdc = a; + amountOfGrapeToSwapIntoUsdc = salariesValue - a; + + } else if ((a + b + c) > salariesValue) { + + amountOfMimToSwapIntoUsdc = a; + amountOfGrapeToSwapIntoUsdc = b; + amountOfWineToSwapIntoUsdc = salariesValue - a - b; + + } + + } + + //////////////////////////////// SWAPS FOR MIM + + let mimPriceInUsdc = await traderJoeContract.getAmountsOut(OldMoney.toSafeMoneyWithLimit(1), [mimTokenAddress, usdcTokenAddress]); + mimPriceInUsdc = ethers.utils.formatUnits(mimPriceInUsdc[1], 6); + + const safeAmountOfGrapeToSwapIntoUsdc = OldMoney.toBigNumber(amountOfGrapeToSwapIntoUsdc, 18); + const safeAmountOfWineToSwapIntoUsdc = OldMoney.toBigNumber(amountOfWineToSwapIntoUsdc, 18); + const safeAmountOfMimToSwapIntoUsdc = OldMoney.toBigNumber(amountOfMimToSwapIntoUsdc, 18); + + const amountOfGrapeToSwapIntoMim = amountOfGrapeToSwapIntoUsdc / mimPriceInUsdc; + const safeAmountOfGrapeToSwapIntoMim = OldMoney.toBigNumber(amountOfGrapeToSwapIntoMim, 18); + + const amountOfWineToSwapIntoMim = amountOfWineToSwapIntoUsdc / mimPriceInUsdc; + const safeAmountOfWineToSwapIntoMim = OldMoney.toBigNumber(amountOfWineToSwapIntoMim, 18); + + + console.log('mimPriceInUsdc:', mimPriceInUsdc); + + console.log('amountOfGrapeToSwapIntoUsdc:', amountOfGrapeToSwapIntoUsdc); + console.log('amountOfGrapeToSwapIntoMim :', amountOfGrapeToSwapIntoMim); + + console.log('amountOfWineToSwapIntoUsdc:', amountOfWineToSwapIntoUsdc); + console.log('amountOfWineToSwapIntoMim :', amountOfWineToSwapIntoMim); + + // SWAP GRAPE FOR MIM + + if (amountOfGrapeToSwapIntoMim > 0) { + const safeArgsA = { + protocol: safeTraderJoeId, + tokenInAddress: grapeTokenAddress, + tokenOutAddress: mimTokenAddress, + amount: safeAmountOfGrapeToSwapIntoMim + }; + + console.log("//////////////////////////SWAP GRAPE FOR MIM AT TRADERJOE"); + try { + const result = await swapTokensExecutor( + new SwapTokensTask({ + name: "swaptokens", + context: { + address: account.address, + provider: hre.ethers.provider, + chain: chain, + run: EnvUtil.toNumber(FLOW_05_RUN_ID) + }, entity: { ABI: entity.ABI, address: entity.address, name: 'trade', hre: hre.ethers } + }), + safeArgsA); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const grapeDelta = Math.abs(result.delta.wallet["GRAPE"]["amount"].toFixed(6)); + const mimDelta = Math.abs(result.delta.wallet["MIM"]["amount"].toFixed(6)); + const msg = `Swapped [ ${grapeDelta} GRAPE ] for [ ${mimDelta} MIM] at Trader Joe [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to swap GRAPE for MIM at Trader Joe") + } + } + + if (amountOfWineToSwapIntoMim > 0) { + const safeArgsA = { + protocol: safeTraderJoeId, + tokenInAddress: wineTokenAddress, + tokenOutAddress: mimTokenAddress, + amount: safeAmountOfWineToSwapIntoMim + }; + + console.log("//////////////////////////SWAP WINE FOR MIM AT TRADERJOE"); + try { + const result = await swapTokensExecutor( + new SwapTokensTask({ + name: "swaptokens", + context: { + address: account.address, + provider: hre.ethers.provider, + chain: chain, + run: EnvUtil.toNumber(FLOW_05_RUN_ID) + }, entity: { ABI: entity.ABI, address: entity.address, name: 'trade', hre: hre.ethers } + }), + safeArgsA); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const wineDelta = Math.abs(result.delta.wallet["WINE"]["amount"].toFixed(6)); + const mimDelta = Math.abs(result.delta.wallet["MIM"]["amount"].toFixed(6)); + const msg = `Swapped [ ${wineDelta} WINE ] for [ ${mimDelta} MIM] at Trader Joe [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to swap WINE for MIM at Trader Joe") + } + } + + + + // SEND MIM + console.log("////////////////////////// SEND MIM TO MICHAEL"); + + let receiverAddress = registry.findPayrollAccount('michael').address; + let receiverAmount = michaelPayrollAmount; + + let bnAmount = OldMoney.toBigNumber(receiverAmount, 18); + + let tx = { + to: receiverAddress, + value: bnAmount + } + + let theTx = await mimTokenContract.connect(account).transfer(receiverAddress, bnAmount) + theTx.wait(); + console.log('theTx:', theTx); + + + console.log("////////////////////////// SEND MIM TO MATT"); + + receiverAddress = registry.findPayrollAccount('matt').address; + receiverAmount = mattPayrollAmount; + + bnAmount = OldMoney.toBigNumber(receiverAmount, 18); + + tx = { + to: receiverAddress, + value: bnAmount + } + + theTx = await mimTokenContract.connect(account).transfer(receiverAddress, bnAmount) + theTx.wait(); + console.log('theTx:', theTx); + + console.log("////////////////////////// SEND MIM TO MUKHTAR"); + + receiverAddress = registry.findPayrollAccount('mukhtar').address; + receiverAmount = mukhtarPayrollAmount; + + bnAmount = OldMoney.toBigNumber(receiverAmount, 18); + + tx = { + to: receiverAddress, + value: bnAmount + } + + theTx = await mimTokenContract.connect(account).transfer(receiverAddress, bnAmount) + theTx.wait(); + console.log('theTx:', theTx); + + console.log("////////////////////////// SEND MIM TO DAN"); + + receiverAddress = registry.findPayrollAccount('dan').address; + receiverAmount = danPayrollAmount; + + bnAmount = OldMoney.toBigNumber(receiverAmount, 18); + + tx = { + to: receiverAddress, + value: bnAmount + } + + theTx = await mimTokenContract.connect(account).transfer(receiverAddress, bnAmount) + theTx.wait(); + console.log('theTx:', theTx); + + + + let balances = await getBalances(); + console.log('balances:', balances); + + + + }) + +task("grapeFlow05", "execute flow for Grape Finance") + .setAction(async (taskArgs, hre) => { + setEnvironment(hre); + let taskSummary: Array = []; + /////////////////////////////////////////////////////////////////// + const unsafeArgs = { + F4T1A: FLOW_04_TASK_01_MIN_AMOUNT_OF_MIM_TO_START, + F4T1B: FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_REWARDS_TO_START, + F4T1E: FLOW_04_TASK_01_MIN_AMOUNT_OF_WINE_IN_WALLET, + F4T1F: FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_GRAPE_LP, + F4T1G: FLOW_04_TASK_01_PERCENTAGE_OF_WINE_TO_STAKE_INTO_WINE_MIM_LP + }; + + const safeF4T1A = EnvUtil.toNumber(unsafeArgs.F4T1A); + const safeF4T1B = EnvUtil.toNumber(unsafeArgs.F4T1B); + const safeF4T1D = OldMoney.toSafeMoneyWithLimit(0); // by default, we don't withdraw from the LP by default when we claim + const safeF4T1E = EnvUtil.toNumber(unsafeArgs.F4T1E); + const safeF4T1F = EnvUtil.toNumber(unsafeArgs.F4T1F); + const safeF4T1G = EnvUtil.toNumber(unsafeArgs.F4T1F); + + const safeTraderJoeId = registry.findProtocol("traderjoe").id; + const safeVineyardId = registry.findProtocol("grapefinance-vineyard").id; + const safeWineryId = registry.findProtocol("grapefinance-winery").id; + const safeGrapeMIMPoolId = "grapemimlp"; + const safeMIMWinePoolId = "mimwinelp"; + const safeGrapeWinePoolId = "grapewinelp"; + const safeNodeWineId = "grapefinance-winenode"; + const safeNodeGrapeId = "grapefinance-grapenode"; + + const traderJoeContractAddress = registry.findProtocol("traderjoe").address; + + const grapeTokenAddress = registry.findToken("grape").address; + const wineTokenAddress = registry.findToken("wine").address; + const mimTokenAddress = registry.findToken("mim").address; + const grapeWineLPTokenAddress = registry.findToken("grape-wine-lp").address; + const mimWineLPTokenAddress = registry.findToken("mim-wine-lp").address; + const grapeMIMLPTokenAddress = registry.findToken("grape-mim-lp").address; + + const traderJoeContract = await ethers.getContractAt(TRADERJOE_ABI, traderJoeContractAddress); + + const grapeTokenContract = await ethers.getContractAt(ERC20_ABI, grapeTokenAddress); + const wineTokenContract = await ethers.getContractAt(ERC20_ABI, wineTokenAddress); + const mimTokenContract = await ethers.getContractAt(ERC20_ABI, mimTokenAddress); + const grapeMIMLPTokenContract = await ethers.getContractAt(ERC20_ABI, grapeMIMLPTokenAddress); + const grapeWineLPTokenContract = await ethers.getContractAt(ERC20_ABI, grapeWineLPTokenAddress); + const mimWineLPTokenContract = await ethers.getContractAt(ERC20_ABI, mimWineLPTokenAddress); + + const account: SignerWithAddress = await getAccount(); + const accountAddress = account.address; + let entity = registry.getEntityData(safeVineyardId); + const chain = registry.findChainByChainId(hre.network.config.chainId); + + interface walletBalance { + address: string; + mim: number; + wine: number; + } + + const balance: walletBalance = { + address: accountAddress, + mim: 0, + wine: 0 + + }; + let balanceState = await getBalances(); + const balancePre = balanceState; + // taskSummary.push(`Checked the initial balances: ${JSON.stringify(balanceState)}`); + + // 1. Check the available MIM balance + let mimTokenBalance = await mimTokenContract.balanceOf(accountAddress); + mimTokenBalance = OldMoney.parseAmount(mimTokenBalance); + console.log("mimTokenBalance:", mimTokenBalance); + + if (mimTokenBalance < safeF4T1A) { + console.log("! --> amount of MIM in wallet is not above threshold. Cancelling script..."); + process.exit(); + // throw new Error('amount of MIM in wallet is not above threshold.'); + } + + // 2. Claim WINE from each pool + // 2.1. claim WINE from GRAPE-MIM-LP + if (balanceState['buckets']["VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE"]["amount"] > EnvUtil.toNumber(FLOW_05_MIN_WINE_CLAIMABLE)) { + let safeArgs = { + protocol: safeVineyardId, + pool: safeGrapeMIMPoolId, + amount: BigNumber.from(0) + }; + console.log("//////////////////////////CLAIM WINE FROM GRAPE-MIM-LP"); + try { + const result = await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: 1 }, + entity: { ABI: entity.ABI, address: entity.address, name: 'grape_mim_lp', hre: hre.ethers } + }), safeArgs); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["WINE"]["amount"].toFixed(6)); + const msg = `Claimed [ ${delta} WINE ] from GRAPE-MIM-LP [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log(err); + taskSummary.push("Failed to claim WINE from GRAPE-MIM-LP") + } + } else { + const msg = `Skipped claiming WINE from VINEYARD_GRAPE_MIM_LP. WINE Claimable: ${balanceState["buckets"]["VINEYARD_GRAPE_MIM_LP_WINE_CLAIMABLE"]["amount"].toFixed(4)}, Minimum threshold: ${EnvUtil.toNumber(FLOW_05_MIN_WINE_CLAIMABLE)}`; + taskSummary.push(msg); + console.log(msg); + } + + + // 2.2. claim WINE from WINE-MIM-LP + console.log('balanceState["buckets"]["VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE"]["amount"]: '); + console.log(balanceState["buckets"]["VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE"]["amount"]); + console.log('EnvUtil.toNumber(FLOW_05_MIN_WINE_CLAIMABLE):'); + console.log(EnvUtil.toNumber(FLOW_05_MIN_WINE_CLAIMABLE)); + if (balanceState["buckets"]["VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE"]["amount"] > EnvUtil.toNumber(FLOW_05_MIN_WINE_CLAIMABLE)) { + let safeArgs = { + protocol: safeVineyardId, + pool: safeMIMWinePoolId, + amount: BigNumber.from(0) + }; + console.log("//////////////////////////CLAIM WINE FROM WINE-MIM-LP "); + try { + const result = await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'wine_mim_lp', hre: hre.ethers } + }), safeArgs); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["WINE"]["amount"].toFixed(6)); + const msg = `Claimed [ ${delta} WINE ] from WINE-MIM-LP [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log(err); + taskSummary.push("Failed to claim WINE from WINE-MIM-LP") + } + } else { + const msg = `Skipped claiming WINE from VINEYARD_WINE_MIM_LP. WINE Claimable: ${balanceState["buckets"]["VINEYARD_MIM_WINE_LP_WINE_CLAIMABLE"]["amount"].toFixed(4)}, Minimum threshold: ${EnvUtil.toNumber(FLOW_05_MIN_WINE_CLAIMABLE)}`; + taskSummary.push(msg); + console.log(msg); + } + + // 2.3. claim WINE from GRAPE-WINE-LP + if (balanceState["buckets"]["VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE"]["amount"] > EnvUtil.toNumber(FLOW_05_MIN_WINE_CLAIMABLE)) { + let safeArgs = { + protocol: safeVineyardId, + pool: safeGrapeWinePoolId, + amount: BigNumber.from(0) + }; + console.log("//////////////////////////CLAIM WINE FROM GRAPE-WINE-LP"); + try { + const result = await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'grape_wine_lp', hre: hre.ethers } + }), safeArgs); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["WINE"]["amount"].toFixed(6)); + const msg = `Claimed [ ${delta} WINE ] from GRAPE-WINE-LP [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log(err); + taskSummary.push("Failed to claim WINE from GRAPE-WINE-LP") + } + } else { + const msg = `Skipped claiming WINE from VINEYARD_GRAPE_WINE_LP. WINE Claimable: ${balanceState["buckets"]["VINEYARD_GRAPE_WINE_LP_WINE_CLAIMABLE"]["amount"].toFixed(4)}, Minimum threshold: ${EnvUtil.toNumber(FLOW_05_MIN_WINE_CLAIMABLE)}`; + taskSummary.push(msg); + console.log(msg); + } + + + // 2.3. claim GRAPE from WINERY + if (balanceState["buckets"]["WINERY_GRAPE_CLAIMABLE"]["amount"] > EnvUtil.toNumber(FLOW_05_MIN_GRAPE_CLAIMABLE)) { + + entity = registry.getEntityData("grapefinance-winery"); + try { + const safeArgsClaimGrape = { + protocol: safeWineryId + }; + console.log("//////////////////////////CLAIM GRAPE FROM WINERY"); + const result = await claimExecutor(new ClaimTask({ + name: "claim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'winery', hre: hre.ethers } + }), safeArgsClaimGrape); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["GRAPE"]["amount"].toFixed(6)); + const msg = `Claimed [ ${delta} GRAPE ] from WINERY [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to claim GRAPE from WINERY") + } + } else { + const msg = `Skipped claiming GRAPE from WINERY. GRAPE Claimable: ${balanceState["buckets"]["WINERY_GRAPE_CLAIMABLE"]["amount"].toFixed(4)}, Minimum threshold: ${EnvUtil.toNumber(FLOW_05_MIN_GRAPE_CLAIMABLE)}`; + taskSummary.push(msg); + console.log(msg); + } + + // 2.4 claim WINE from NODE-WINE + if (balanceState["buckets"]["NODES_WINE_CLAIMABLE"]["amount"] > EnvUtil.toNumber(FLOW_05_MIN_WINE_CLAIMABLE)) { + + entity = registry.getEntityData(safeNodeWineId); + try { + const safeArgsClaimNodeWine = { + protocol: safeNodeWineId + }; + console.log("////////////////////////// CLAIM WINE FROM NODE-WINE"); + const result = await claimExecutor(new ClaimTask({ + name: "claim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'nodes_wine', hre: hre.ethers } + }), safeArgsClaimNodeWine); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["WINE"]["amount"].toFixed(6)); + const msg = `Claimed [ ${delta} WINE ] from NODE-WINE [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log(err); + taskSummary.push("Failed to claim WINE from NODE-WINE") + } + + } else { + const msg = `Skipped claiming WINE from NODE-WINE. Amount of WINE-Nodes: ${balanceState["buckets"]["NODES_WINE"]["amount"]}. WINE Claimable: ${balanceState["buckets"]["NODES_WINE_CLAIMABLE"]["amount"].toFixed(2)}, Minimum threshold: ${EnvUtil.toNumber(FLOW_05_MIN_WINE_CLAIMABLE)}`; + taskSummary.push(msg); + console.log(msg); + } + + // 2.5 claim GRAPE from NODE-GRAPE + if (balanceState["buckets"]["NODES_GRAPE_CLAIMABLE"]["amount"] > EnvUtil.toNumber(FLOW_05_MIN_GRAPE_CLAIMABLE)) { + + entity = registry.getEntityData(safeNodeGrapeId); + try { + const safeArgsClaimNodeGrape = { + protocol: safeNodeGrapeId + }; + console.log("////////////////////////// CLAIM GRAPE FROM NODE-GRAPE"); + const result = await claimExecutor(new ClaimTask({ + name: "claim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'nodes_grape', hre: hre.ethers } + }), safeArgsClaimNodeGrape); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["GRAPE"]["amount"].toFixed(6)); + const msg = `Claimed [ ${delta} GRAPE ] from NODE-GRAPE [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log(err); + taskSummary.push("Failed to claim GRAPE from NODE-GRAPE") + } + + } else { + const msg = `Skipped claiming GRAPE from NODE-GRAPE. Amount of Grape-Nodes: ${balanceState["buckets"]["NODES_GRAPE"]["amount"]}. GRAPE Claimable: ${balanceState["buckets"]["NODES_GRAPE_CLAIMABLE"]["amount"].toFixed(2)}, Minimum threshold: ${EnvUtil.toNumber(FLOW_05_MIN_GRAPE_CLAIMABLE)}`; + taskSummary.push(msg); + console.log(msg); + } + + balanceState = await getBalances(); + // taskSummary.push(`Checked the balances: ${JSON.stringify(balanceState)}`); + + + // 3.1. Check amount of WINE in wallet + + let wineTokenBalance = await wineTokenContract.balanceOf(accountAddress); + wineTokenBalance = OldMoney.parseAmount(wineTokenBalance); + console.log("wineTokenBalance:", wineTokenBalance); + + if (wineTokenBalance > safeF4T1E) { + taskSummary.push(`Checked the WINE balance in Wallet to see that there was enough to continue.`); + + + + // 3.2. Check amount of GRAPE in wallet + + let grapeTokenBalance = await grapeTokenContract.balanceOf(accountAddress); + grapeTokenBalance = OldMoney.parseAmount(grapeTokenBalance); + console.log("grapeTokenBalance:", grapeTokenBalance); + + if (grapeTokenBalance > 50) { + console.log("////////////////////////// BUYING GRAPE NODE"); + const safeArgsGrapeNode = { + protocol: "grapefinance-grapenode", + node: "grape", + amount: OldMoney.toSafeMoneyWithLimit(50.0) + }; + entity = registry.getEntityData("grapefinance-grapenode"); + try { + const result = await buyNodeExecutor(new BuyNodeTask({ + name: "buynode", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'nodes_grape', hre: hre.ethers } + }), safeArgsGrapeNode); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + + const delta = Math.abs(result.delta.buckets["NODES_GRAPE"]["amount"]); + const delta2 = Math.abs(result.delta.wallet["GRAPE"]["amount"]); + const msg = `Bought [ ${delta} GRAPE NODES for ${delta2} GRAPE ] from NODES [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to buy a GRAPE NODE") + } + + + } else { + console.log("not enough GRAPE to buy a GRAPE Node (50). Skipping purchase...") + taskSummary.push("Skipped buying a GRAPE NODE (not enough GRAPE)") + } + + if (wineTokenBalance > 0.5) { + console.log("////////////////////////// BUYING WINE NODE"); + const safeArgsWineNode = { + protocol: "grapefinance-winenode", + node: "wine", + amount: OldMoney.toSafeMoneyWithLimit(0.5) + }; + entity = registry.getEntityData("grapefinance-winenode"); + try { + const result = await buyNodeExecutor(new BuyNodeTask({ + name: "buynode", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'nodes_wine', hre: hre.ethers } + }), safeArgsWineNode); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.buckets["NODES_WINE"]["amount"]); + const delta2 = Math.abs(result.delta.wallet["WINE"]["amount"]); + const msg = `Bought [ ${delta} WINE NODES for ${delta2} WINE ] from NODES [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to buy a WINE NODE") + } + + } else { + console.log("not enough WINE to buy a WINE Node (0.5). Skipping purchase...") + taskSummary.push("Skipped buying a WINE NODE (not enough WINE)") + } + + + + + + let amountOfWineToStakeIntoWineGrapeLp = wineTokenBalance * (50.0 / 100); + let amountOfWineToStakeIntoMimWineLp = wineTokenBalance * (50.0 / 100); + // const amountOfWineToStakeIntoWinery = wineTokenBalance * (33.33 / 100); + console.log("amountOfWineToStakeIntoWineGrapeLp:", amountOfWineToStakeIntoWineGrapeLp); + console.log("amountOfWineToStakeIntoMimWineLp:", amountOfWineToStakeIntoMimWineLp); + // console.log("amountOfWineToStakeIntoWinery:", amountOfWineToStakeIntoWinery); + + // check price of GRAPE in MIM + let grapePriceInMim = await traderJoeContract.getAmountsOut(OldMoney.toBigNumber(1, 18), [grapeTokenAddress, mimTokenAddress]); + grapePriceInMim = OldMoney.parseAmount(grapePriceInMim[1]); + console.log("grapePriceInMim: ", grapePriceInMim); + + // check price of WINE in MIM + let winePriceInMim = await traderJoeContract.getAmountsOut(OldMoney.toBigNumber(1, 18), [wineTokenAddress, mimTokenAddress]); + winePriceInMim = OldMoney.parseAmount(winePriceInMim[1]); + console.log("winePriceInMim: ", winePriceInMim); + + const wineGrapeRatio = winePriceInMim / grapePriceInMim; + console.log("wineGrapeRatio:", wineGrapeRatio); + + grapeTokenBalance = await grapeTokenContract.balanceOf(account.address); + grapeTokenBalance = OldMoney.parseAmount(grapeTokenBalance); + console.log("grapeTokenBalance:", grapeTokenBalance) + + let amountOfGrapeToBuy = (amountOfWineToStakeIntoWineGrapeLp * wineGrapeRatio) - grapeTokenBalance; + console.log("amountOfGrapeToBuy:", amountOfGrapeToBuy); + + let amountOfMimToInputIntoWineGrapeLp = amountOfGrapeToBuy * grapePriceInMim; + console.log("amountOfMimToInputIntoWineGrapeLp:", amountOfMimToInputIntoWineGrapeLp); + + let amountOfMimToInputIntoMimWineLp = winePriceInMim * amountOfWineToStakeIntoMimWineLp; + console.log("amountOfMimToInputIntoMimWineLp:", amountOfMimToInputIntoMimWineLp); + + const amountOfNecessaryMim = amountOfMimToInputIntoWineGrapeLp + amountOfMimToInputIntoMimWineLp; + console.log("amountOfNecessaryMim:", amountOfNecessaryMim); + + const amountOfMimToFetch = amountOfNecessaryMim - mimTokenBalance; + console.log("amountOfMimToFetch:", amountOfMimToFetch); + + let amountOfGrapeMimLPTokensToRemove = 0; + + //const amountOfGrapeExchangeableForMIM = + if (amountOfMimToFetch > 0) { + + amountOfGrapeMimLPTokensToRemove = amountOfMimToFetch / grapePriceInMim; + } else { + console.log("no more MIM is needed.") + } + + console.log("amountOfGrapeMimLPTokensToRemove:", amountOfGrapeMimLPTokensToRemove); + + const safeAmountOfGrapeToBuy = OldMoney.toSafeMoneyWithLimit(amountOfGrapeToBuy); + const safeAmountOfMimToInputIntoWineGrapeLp = OldMoney.toSafeMoneyWithLimit(amountOfMimToInputIntoWineGrapeLp); + const safeAmountOfWineToStakeIntoWineGrapeLp = OldMoney.toSafeMoneyWithLimit(amountOfWineToStakeIntoWineGrapeLp); + + const safeAmountOfMimToInputIntoMimWineLp = OldMoney.toSafeMoneyWithLimit(amountOfMimToInputIntoMimWineLp); + const safeAmountOfWineToStakeIntoMimWineLp = OldMoney.toSafeMoneyWithLimit(amountOfWineToStakeIntoMimWineLp); + const safeAmountOfGrapeMimLPTokensToRemove = OldMoney.toSafeMoneyWithLimit(amountOfGrapeMimLPTokensToRemove); + + // console.log('balanceState["VINEYARD_GRAPE_MIM_LP_STAKED"]["amount":') + // console.log(balanceState["VINEYARD_GRAPE_MIM_LP_STAKED"]["amount"]) + + if (amountOfGrapeMimLPTokensToRemove < balanceState["buckets"]["VINEYARD_GRAPE_MIM_LP_STAKED"]["amount"]) { + if (amountOfGrapeMimLPTokensToRemove > 0) { + + const account: SignerWithAddress = await getAccount(); + + // withdraw liquidity from GRAPE-MIM-LP at the Vineyard + + let safeArgsW = { + protocol: safeVineyardId, + pool: safeGrapeMIMPoolId, + amount: OldMoney.toBigNumber(amountOfGrapeMimLPTokensToRemove, 18) + }; + let entity = registry.getEntityData(safeVineyardId); + console.log("////////////////////////// WITHDRAW LIQUIDITY FROM GRAPE-MIM-LP AT VINEYARD"); + try { + const result = await poolclaimExecutor(new PoolClaimTask({ + name: "poolclaim", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'grape_mim_lp', hre: hre.ethers } + }), safeArgsW); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["GRAPE_MIM_LP"]["amount"].toFixed(6)); + const msg = `Withdraw [ ${delta} GRAPE-MIM-LP ] from GRAPE-MIM-LP at the Vineyard [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log(err); + taskSummary.push("Failed to withdraw liquidity from GRAPE-MIM-LP at the Vineyard") + } + + console.log("////////////////////////// REMOVE LIQUIDITY FROM GRAPE-MIM-LP AT TRADERJOE"); + const safeProtocolId = registry.findProtocol("traderjoe").id; + const safeAmount = safeAmountOfGrapeMimLPTokensToRemove; + const safeToken1Address = registry.findToken("grape").address; + const safeToken2Address = registry.findToken("mim").address; + const safeLiquidityPair = registry.findToken("grape-mim-lp").id; + const safeArgs = { + protocol: safeProtocolId, + token1Address: safeToken1Address, + token2Address: safeToken2Address, + liquidityPair: safeLiquidityPair, + amount: safeAmount + }; + entity = registry.getEntityData(safeProtocolId); + /////////////////////////////////////////////////////////////////// + + try { + const result = await removeLiquidityExecutor(new RemoveLiquidityTask({ + name: "removeliquidity", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'grape_mim_lp', hre: hre.ethers } + }), safeArgs); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const grapeMimDelta = Math.abs(result.delta.wallet["GRAPE_MIM_LP"]["amount"].toFixed(6)); + const grapeDelta = Math.abs(result.delta.wallet["GRAPE"]["amount"].toFixed(6)); + const mimDelta = Math.abs(result.delta.wallet["MIM"]["amount"].toFixed(6)); + const msg = `Removed [ ${grapeMimDelta} GRAPE-MIM-LP ] for [${grapeDelta} GRAPE] and [${mimDelta} MIM] from Trader Joe [tx: ${explorerLink} ]`; + taskSummary.push(msg) + // taskSummary.push("Removed Liquidity from GRAPE-MIM-LP") + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to Remove Liquidity from GRAPE-MIM-LP") + } + + } else { + console.log("No need to remove GRAPE-MIM-LP tokens from the Vineyard. There is enough MIM available."); + taskSummary.push("Skipped removing liquidity from GRAPE-MIM-LP (there was enough MIM available)"); + } + + mimTokenBalance = await mimTokenContract.balanceOf(accountAddress); + mimTokenBalance = OldMoney.parseAmount(mimTokenBalance); + console.log("new mimTokenBalance:", mimTokenBalance); + balance["mim"] = mimTokenBalance; + + const safeArgsB = { + protocol: safeTraderJoeId, + tokenInAddress: mimTokenAddress, + tokenOutAddress: grapeTokenAddress, + amount: safeAmountOfMimToInputIntoWineGrapeLp + }; + + if (amountOfGrapeToBuy > 0) { + console.log("//////////////////////////SWAP MIM FOR GRAPE AT TRADERJOE"); + try { + const result = await swapTokensExecutor( + new SwapTokensTask({ + name: "swaptokens", + context: { + address: account.address, + provider: hre.ethers.provider, + chain: chain, + run: EnvUtil.toNumber(FLOW_05_RUN_ID) + }, entity: { ABI: entity.ABI, address: entity.address, name: 'trade', hre: hre.ethers } + }), + safeArgsB); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const grapeDelta = Math.abs(result.delta.wallet["GRAPE"]["amount"].toFixed(6)); + const mimDelta = Math.abs(result.delta.wallet["MIM"]["amount"].toFixed(6)); + const msg = `Swapped [ ${mimDelta} MIM ] for [ ${grapeDelta} GRAPE] at Trader Joe [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to swap MIM for GRAPE at Trader Joe") + } + } else { + taskSummary.push("Skipped swapping MIM for GRAPE since there was enough GRAPE available already") + } + + // Add Liquidity to Grape Wine LP at TraderJoe + const safeArgsC = { + protocol: safeTraderJoeId, + token1Address: grapeTokenAddress, + token2Address: wineTokenAddress, + amount1: safeAmountOfGrapeToBuy, + amount2: safeAmountOfWineToStakeIntoWineGrapeLp + }; + if (amountOfMimToInputIntoWineGrapeLp > 0 && amountOfWineToStakeIntoWineGrapeLp) { + console.log("//////////////////////////ADD LIQUIDITY TO GRAPE-WINE-LP AT TRADERJOE "); + try { + const result = await addLiquidityExecutor( + new AddLiquidityTask({ + name: "addliquidity", + context: { + address: account.address, + provider: hre.ethers.provider, + chain: chain, + run: EnvUtil.toNumber(FLOW_05_RUN_ID) + }, entity: { ABI: entity.ABI, address: entity.address, name: 'grape_wine_lp', hre: hre.ethers } + }), + safeArgsC); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const grapeDelta = Math.abs(result.delta.wallet["GRAPE"]["amount"].toFixed(6)); + const wineDelta = Math.abs(result.delta.wallet["WINE"]["amount"].toFixed(6)); + const msg = `Added [ ${grapeDelta} GRAPE ] and [ ${wineDelta} WINE] to GRAPE-WINE-LP at Trader Joe [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to Add Liquidity to GRAPE-WINE-LP at Trader Joe") + } + } else { + taskSummary.push("Skipped adding Liquidity to GRAPE-WINE-LP") + } + + // Get Balance of Grape-Wine-LP tokens in wallet + let grapeWineLPTokenBalance = await grapeWineLPTokenContract.balanceOf(accountAddress); + grapeWineLPTokenBalance = OldMoney.parseAmount(grapeWineLPTokenBalance); + console.log("grapeWineLPTokenBalance :", grapeWineLPTokenBalance); + + const amountOfLPToDeposit = OldMoney.toSafeMoneyWithLimit(grapeWineLPTokenBalance * 0.9995); + + // Add WINE-GRAPE-LP-token to Grape + const safeLiquidityPairId = registry.findToken("grape-wine-lp").id; + const safeArgsD = { + protocol: safeVineyardId, + amount: amountOfLPToDeposit, + liquidityPair: safeLiquidityPairId + }; + entity = registry.getEntityData(safeVineyardId); + if (grapeWineLPTokenBalance > 0) { + console.log("//////////////////////////DEPOSIT GRAPE-WINE-LP TOKEN AT GRAPE-FINANCE'S VINEYARD"); + try { + const result = await depositExecutor( + new DepositTask({ + name: "deposit", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'grape_wine_lp', hre: hre.ethers } + }), safeArgsD); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["GRAPE_WINE_LP"]["amount"].toFixed(6)); + const msg = `Deposited [ ${delta} GRAPE-WINE-LP ] at the Vineyard [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to deposit GRAPE-WINE-LP Tokens at the Vineyard") + } + } else { + taskSummary.push("Skipped depositing GRAPE-WINE-LP Tokens at the Vineyard (no LP tokens in wallet)") + } + + // Add Liquidity to MIM Wine LP at TraderJoe + const safeArgsE = { + protocol: safeTraderJoeId, + token1Address: mimTokenAddress, + token2Address: wineTokenAddress, + amount1: safeAmountOfMimToInputIntoMimWineLp, + amount2: safeAmountOfWineToStakeIntoMimWineLp + }; + console.log("//////////////////////////ADD LIQUIDITY TO MIM-WINE-LP AT TRADERJOE"); + try { + const result = await addLiquidityExecutor(new AddLiquidityTask({ + name: "addliquidity", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'mim_wine_lp', hre: hre.ethers } + }), safeArgsE); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const mimDelta = Math.abs(result.delta.wallet["MIM"]["amount"].toFixed(6)); + const wineDelta = Math.abs(result.delta.wallet["WINE"]["amount"].toFixed(6)); + const msg = `Added [ ${mimDelta} MIM ] and [ ${wineDelta} WINE] to MIM-WINE-LP at Trader Joe [tx: ${explorerLink} ]`; + taskSummary.push(msg) + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to add liquidity to MIM-WINE-LP at Trader Joe") + } + + // Get Balance of Grape-Wine-LP tokens in wallet + let mimWineLPTokenBalance = await mimWineLPTokenContract.balanceOf(accountAddress); + mimWineLPTokenBalance = OldMoney.parseAmount(mimWineLPTokenBalance); + console.log("mimWineLPTokenBalance :", mimWineLPTokenBalance); + + const amountOfMimWineLPToDeposit = OldMoney.toSafeMoneyWithLimit(mimWineLPTokenBalance * 0.9995); + + // Add MIM-WINE-LP-token to Grape + const safeMimWineLiquidityPairId = registry.findToken("mim-wine-lp").id; + const safeArgsF = { + protocol: safeVineyardId, + amount: amountOfMimWineLPToDeposit, + liquidityPair: safeMimWineLiquidityPairId + }; + entity = registry.getEntityData(safeVineyardId); + console.log("////////////////////////// DEPOSIT MIM-WINE-LP TOKEN AT GRAPE-FINANCE'S VINEYARD"); + try { + const result = await depositExecutor(new DepositTask({ + name: "deposit", + context: { address: account.address, provider: hre.ethers.provider, chain: chain, run: EnvUtil.toNumber(FLOW_05_RUN_ID) }, + entity: { ABI: entity.ABI, address: entity.address, name: 'mim_wine_lp', hre: hre.ethers } + }), safeArgsF); + const explorerLink = "https://snowtrace.io/tx/" + result.receipt.transactionHash; + const delta = Math.abs(result.delta.wallet["MIM_WINE_LP"]["amount"].toFixed(6)); + const msg = `Deposited [ ${delta} MIM-WINE-LP ] at the Vineyard [tx: ${explorerLink} ]`; + taskSummary.push(msg); + } catch (err) { + console.log("--> error:") + console.log(err); + taskSummary.push("Failed to deposit MIM-WINE-LP Tokens at the Vineyard") + } + + + /*const safeProtocolId = registry.findProtocol("grapefinance-winery").id; + const safeAmount = OldMoney.toSafeMoneyWithLimit(amountOfWineToStakeIntoWinery); + const safeArgsG = { + protocol: safeProtocolId, amount: safeAmount + }; + /////////////////////////////////////////////////////////////////// + entity = registry.getEntityData(safeProtocolId); + console.log("////////////////////////// STAKE WINE AT THE WINERY"); + await stakeExecutor(new StakeTask({ + name: "stake", + context: { address: account.address, provider: hre.ethers.provider }, + entity: { ABI: entity.ABI, address: entity.address, hre: hre.ethers } + }), safeArgsG); + */ + } else { + taskSummary.push(`Stopped the execution here. The required amount of GRAPE-MIM-LP to withdraw from the Vineyard (${amountOfGrapeMimLPTokensToRemove.toFixed(2)}) is higher than what there is currently staked (${balanceState["buckets"]["VINEYARD_GRAPE_MIM_LP_STAKED"]["amount"]}). We need an additional: $MIM ${Math.abs(amountOfMimToFetch).toFixed(2)} and $GRAPE ${Math.abs(amountOfGrapeToBuy).toFixed(2)} to be able to match the $WINE and stake into the GRAPE-WINE-LP and MIM-WINE-LP`); + console.log(`Stopped the execution here. The required amount of GRAPE-MIM-LP to withdraw from the Vineyard (${amountOfGrapeMimLPTokensToRemove.toFixed(2)}) is higher than what there is currently staked (${balanceState["buckets"]["VINEYARD_GRAPE_MIM_LP_STAKED"]["amount"]}). We need an additional: $MIM ${Math.abs(amountOfMimToFetch).toFixed(2)} and $GRAPE ${Math.abs(amountOfGrapeToBuy).toFixed(2)} to be able to match the $WINE and stake into the GRAPE-WINE-LP and MIM-WINE-LP`); + } + } else { + taskSummary.push(`Stopped the execution, there is not enough WINE in wallet to continue. $WINE required: ${safeF4T1E}, available: ${wineTokenBalance}`); + console.log(`Stopped the execution, there is not enough WINE in wallet to continue. $WINE required: ${safeF4T1E}, available: ${wineTokenBalance}`); + } + + balanceState = await getBalances(); + const balancePost = balanceState; + + console.log('balancePre:', balancePre); + console.log('balancePost:', balancePre); + + const flowDelta = await getDelta(balancePre, balancePost); + console.log('delta:', flowDelta); + + // update RUN ID + const currentRunId = EnvUtil.toNumber(FLOW_05_RUN_ID); + const newRunId = (currentRunId + 1).toString(); + // console.log('currentRunId:', currentRunId); + // console.log('newRunId:', newRunId); + // EnvUtil.setEnvValue(envFilePath, FLOW_05_RUN_ID, newRunId) + + // taskSummary.push(`Checked the final balances: ${JSON.stringify(balanceState)}`); + console.log("////////////////////////////////////////////////////////////") + console.log("Flow execution summary:") + let c = 0; + for (let t of taskSummary) { + c = c + 1; + console.log(`${c.toString()}. ${t}`); + } + + }); diff --git a/tests/lib/money/CurrencyUnit.tests.ts b/tests/lib/money/CurrencyUnit.tests.ts new file mode 100644 index 0000000..374d3bd --- /dev/null +++ b/tests/lib/money/CurrencyUnit.tests.ts @@ -0,0 +1,38 @@ +import 'mocha'; +import { expect } from 'chai'; + +import Currencies, { CurrencyUnit } from '../../../lib/money/Currencies'; + +describe('CurrencyUnit', () => { + + // [ETH, BTC].forEach(currency => it(`should have a currency of ${currency}`, () => expect(currency.currency).to.equal(currency))))))); + + describe('constructor', () => { + const name = 'Ethereum'; + const symbol = 'ETH'; + const digits = 18; + + it('should construct', () => CurrencyUnit.to({ name, symbol, digits })); + // it('should allow empty name', () => new CurrencyUnit({ name: undefined, symbol, digits })); + // it('should allow empty precision', () => new CurrencyUnit({ name, symbol, digits, precision: undefined })); + + // it('should not allow symbol to be undefined', () => expect(() => new CurrencyUnit({ name, symbol:undefined, digits: 18, precision: 0 })).to.throw(Error)); + // it('should not allow empty symbol', () => new CurrencyUnit({ name, symbol: undefined, digits })); + // it('should not allow 0 precision', () => expect(() => new CurrencyUnit({ name, symbol, digits: 18, precision: 0 })).to.throw(Error)); + }); + + describe('toString', () => { + it('should look like this', () => expect(Currencies.ETH.toString()).to.equal('ETH')); + }) + + /* + describe('humanize amount', () => { + it('should return a string', () => + expect(CurrencyUnit.toHumanizedAmount( + BigNumber.from("123456789123456789"), + new HumanizedDigits({digits: 18, precision: 4})) + ).to.be.a("string")); + }) + */ + +}); \ No newline at end of file diff --git a/tests/lib/money/Digits.tests.ts b/tests/lib/money/Digits.tests.ts new file mode 100644 index 0000000..098e23d --- /dev/null +++ b/tests/lib/money/Digits.tests.ts @@ -0,0 +1,118 @@ +import 'mocha'; +import { expect } from 'chai'; +import { BigNumber } from 'ethers'; + +import Digits, { SafeDigits } from '../../../lib/money/Digits'; +import Numbers from '../../../lib/types/Numbers'; + + +// import { SafeDigits, DigitsLike, NumberLike } from '../../lib/money/CurrencyUnit' + +function countDecimals(value: number) { + if (Math.floor(value) === value) { + return 0; + } else { + return value.toString().split(".")[1].length || 0; + } +} + +describe('Types/Numbers', () => { + + [ + '0', 0, '1', '1.1' + ].forEach(v => it('should return a number', () => expect(Numbers.toNativeNumber(v)).to.be.a('number'))); + + // [ + // '', null, undefined, 'a' + // ].forEach(v => it('should throw an error', () => expect(() => Numbers.toNativeNumber(v)).to.throw())); + + // it('', () => expect(Numbers.isNumber('1')).to.be.true) + // it('', () => expect(Numbers.isNumber(null)).to.be.true) + // it('', () => expect(Numbers.isNumber(undefined)).to.be.true) +}); + +describe('SafeDigits', () => { + + const ONE = BigNumber.from(1); + const FIVE = BigNumber.from(5); + const SIX = BigNumber.from(6); + const SEVEN = BigNumber.from(7); + + // DAN TODO: add tests for passing in undefined & null & string & number & BigNumber + // DAN TODO: add tests for invalid input of decimals ("5.5") & invalid numbers ("5.5.5") + + // const DECIMAL = BigNumber.from(7.36); + + // describe('of', () => { + // it('digits: 6', () => expect(SafeDigits.of(SIX).rendering).to.eq(6)); + // it('digits: 7', () => expect(SafeDigits.of(SEVEN).rendering).to.eq(7)); + // + // [ONE, FIVE, undefined].forEach(v => it('should throw error', () => expect(() => SafeDigits.of(v)).to.throw())); + // }); +}); + +// def('digits', 9); +// def('digits', 9); + +// describe('Digits', () => { + +// def('digits', () => 3); + +// }); +// it('should be able to create a DigitsHolder', () => { +// console.log($digits); +// }); + +// describe('Digits - safe scenarios', () => { +// [ +// { value: 0, decimals: 0 }, +// { value: 0.1, decimals: 1 }, +// { value: 0.01, decimals: 2 }, +// ].forEach(scenario => { + +// describe(`scenario: ${scenario}`, () => { + +// it('should have correct decimals', () => { +// const digits = new DigitsHolder(scenario.value, scenario.decimals); +// expect(digits.decimals).to.equal(scenario.decimals); +// }) + +// it('should have correct value', () => { +// const digits = new DigitsHolder(scenario.value, scenario.decimals); +// expect(digits.value).to.equal(scenario.value); +// }); + +// }) + +// } +// }); + +// describe('DigitsHolder', () => { + +// describe('constructor', () => { +// const digits = 18; +// const precision = 4; + +// it('should construct', () => new DigitsHolder({ digits, precision })); + +// }); + +// describe('toDigits', () => { +// it('should return a number', () => expect(DigitsHolder.toDigits(6)).to.be.a("number")); +// it('should return 6 decimals', () => expect(countDecimals(DigitsHolder.toDigits(6))).to.equal(6)); +// }) + +// describe('toHolder', () => { +// it('should return an instance of Digits Holder', () => expect(DigitsHolder.toHolder(6)).to.be.an.instanceOf(DigitsHolder)); +// }) + +// describe('humanize', () => { +// const dh = new DigitsHolder({ digits: 18, precision: 4 }); +// const bn = BigNumber.from(10000000000); + +// it('should return a string', () => expect(dh.humanize(bn)).to.be.a("string")); +// // it('should ', () => expect(dh.humanize("1000000")).to.throw(Error)); + +// }) + +// }); \ No newline at end of file diff --git a/tests/lib/money/Money.tests.ts b/tests/lib/money/Money.tests.ts new file mode 100644 index 0000000..17af023 --- /dev/null +++ b/tests/lib/money/Money.tests.ts @@ -0,0 +1,102 @@ +import 'mocha'; +import { expect } from 'chai'; + +import Money from '../../../lib/money/Money'; +import Currencies, { CurrencyUnit } from '../../../lib/money/Currencies'; + +describe('CurrencyUnit', function () { + + describe('toString', () => { + it('should only be the symbol', + () => expect(Currencies.ETH.toString()) + .to.equal('ETH')); + }); + +}); + +describe('Money', () => { + + // [ETH, BTC].forEach(currency => it(`should have a currency of ${currency}`, () => expect(currency.currency).to.equal(currency))))))); + + describe('digits', function () { + describe('USD', function () { + it('should parse as 2', + () => + expect(Currencies.USD) + .to.have.property('digits') + .to.have.property('parsed').to.equal(2)); + it('should format as 2', + () => expect(Currencies.USD) + .to.have.property('digits') + .to.have.property('formatted').to.equal(2)); + }); + }); + + describe('ofFormatted', function () { + describe('0', function () { + it('should be 0', + () => + expect(Money.ofFormatted(0, Currencies.USD).toString()) + .to.equal('0.00 USD')); + }); + describe('1.00 USD', function () { + [ + '1.0', + '1.00', + '1.000', + '01.000', + '01', + '1', + ].forEach(amount => { + it(`${amount}`, function () { + const money = Money.ofFormatted(amount, CurrencyUnit.USD); + + it('money.toString() should be "0.01 USD"', + () => expect(money.toString()).to.equal('0.01 USD')); + + it('money.amount.toString() should be "100"', + () => expect(money.amount.toString()).to.equal('100')); + + it('money.parsedAmount should be "100"', + () => expect(money.parsedAmount).to.equal('100')); + + it('money.formattedAmount should be "1.00"', + () => expect(money.formattedAmount).to.equal('0.01')); + }); + }) + }); + }); + + describe('ofParsed', function () { + describe('0', function () { + it('should be 0', + () => + expect(Money.ofParsed(0, Currencies.USD).toString()) + .to.equal('0.00 USD')); + }); + + describe('100', function () { + [ + '100', + '0100', + ].forEach(amount => { + it(`${amount}`, function () { + const money = Money.ofParsed(amount, CurrencyUnit.USD); + + it('money.toString() should be "0.01 USD"', + () => expect(money.toString()).to.equal('0.01 USD')); + + it('money.amount.toString() should be "100"', + () => expect(money.amount.toString()).to.equal('100')); + + it('money.parsedAmount should be "100"', + () => expect(money.parsedAmount).to.equal('100')); + + it('money.formattedAmount should be "1.00"', + () => expect(money.formattedAmount).to.equal('0.01')); + }); + }) + }); + }); + +}); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..8ac7037 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,37 @@ +{ + "compilerOptions": { + "module": "commonjs", + "strict": true, + "esModuleInterop": true, + "target": "es5", + "noImplicitAny": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "forceConsistentCasingInFileNames": true, + "sourceMap": true, + "outDir": "dist", + "baseUrl": ".", + "types": [ + "node", + "mocha" + ], + "paths": { + "*": [ + "node_modules/*" + ] + } + }, + "include": [ + "src/**/*", + "./scripts", + "./deploy", + "./test", + "typechain/**/*" +, "lib/discussion_bp.ts" ], + "exclude": [ + "src/**/*.test.ts" + ], + "files": [ + "./hardhat.config.ts" + ] +} \ No newline at end of file diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000..182b694 --- /dev/null +++ b/tslint.json @@ -0,0 +1,60 @@ +{ + "rules": { + "class-name": true, + "comment-format": [ + true, + "check-space" + ], + "indent": [ + true, + "spaces" + ], + "one-line": [ + true, + "check-open-brace", + "check-whitespace" + ], + "no-var-keyword": true, + "quotemark": [ + true, + "double", + "avoid-escape" + ], + "semicolon": [ + true, + "always", + "ignore-bound-class-methods" + ], + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-module", + "check-separator", + "check-type" + ], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + }, + { + "call-signature": "onespace", + "index-signature": "onespace", + "parameter": "onespace", + "property-declaration": "onespace", + "variable-declaration": "onespace" + } + ], + "no-internal-module": true, + "no-trailing-whitespace": true, + "no-null-keyword": true, + "prefer-const": true, + "jsdoc-format": true + } +} \ No newline at end of file