diff --git a/.eslintrc.json b/.eslintrc.json index e443df6d4..453edd508 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -51,8 +51,7 @@ "ul": ["list"], "ol": ["list"] } - ], - "curly": "warn" + ] } }, { @@ -75,7 +74,8 @@ "prefer": "type-imports", "disallowTypeAnnotations": true } - ] + ], + "curly": ["error", "multi-line"] } }, { diff --git a/.github/ISSUE_TEMPLATE/---bug.md b/.github/ISSUE_TEMPLATE/---bug.md new file mode 100644 index 000000000..fbb8c8f7d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/---bug.md @@ -0,0 +1,45 @@ +--- +name: "\U0001F41B Bug" +about: Create a report to help us improve +title: '' +labels: "\U0001F41B bug" +assignees: '' +--- + +## Description + +A clear and concise description of what the bug is. + +## Steps to Reproduce + +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +## Expected behavior + +A clear and concise description of what you expected to happen. + +## Screenshots + +If applicable, add screenshots to help explain your problem. + +## Device details + +**Desktop (please complete the following information):** + +- OS: [e.g. iOS] +- Browser [e.g. chrome, safari] +- Version [e.g. 22] + +**Smartphone (please complete the following information):** + +- Device: [e.g. iPhone6] +- OS: [e.g. iOS8.1] +- Browser [e.g. stock browser, safari] +- Version [e.g. 22] + +## Additional context + +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/chore.md b/.github/ISSUE_TEMPLATE/chore.md new file mode 100644 index 000000000..39c177d33 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/chore.md @@ -0,0 +1,21 @@ +--- +name: Chore +about: + A template to capture non feature / enhancement work we need to do like work + to support other functions or housekeeping etc. +title: '' +labels: chore +assignees: '' +--- + +## The Chore + +What we need to achieve and who for + +## Tasks + +- [ ] What do we need to do first +- [ ] and then what? +- [ ] Etc. + +## Additional details / background info diff --git a/.github/ISSUE_TEMPLATE/user-story.md b/.github/ISSUE_TEMPLATE/user-story.md new file mode 100644 index 000000000..3121b6c05 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/user-story.md @@ -0,0 +1,33 @@ +--- +name: User Story +about: + A template to describe a features or enhancements we want to make from a users + perspective to ensure we understand what is needed and the value it would add +title: '' +labels: feature +assignees: '' +--- + +## Story + +As a +I want +So that + +## Acceptance Criteria + +- [ ] I can +- [ ] I can +- [ ] I can + +## Tasks + +- [ ] Explore and sketch +- [ ] Team and stakeholder review +- [ ] Visual Design +- [ ] Team review +- [ ] Etc. + +## Sketch + +## Additional details / background info diff --git a/.github/workflows/capsule-cypress-manual-trigger.yml b/.github/workflows/capsule-cypress-manual-trigger.yml index 6cb2b810d..f21c96b77 100644 --- a/.github/workflows/capsule-cypress-manual-trigger.yml +++ b/.github/workflows/capsule-cypress-manual-trigger.yml @@ -140,6 +140,7 @@ jobs: CYPRESS_SLACK_WEBHOOK: ${{ secrets.CYPRESS_SLACK_WEBHOOK }} CYPRESS_ETH_WALLET_MNEMONIC: ${{ secrets.CYPESS_ETH_WALLET_MNEMONIC }} CYPRESS_INCLUDE_FLOWS: ${{ github.event.inputs.includeFlows }} + CYPRESS_TEARDOWN_NETWORK_AFTER_FLOWS: true ###### ## Upload logs diff --git a/.github/workflows/capsule-cypress-night-run.yml b/.github/workflows/capsule-cypress-night-run.yml index b0ea14659..530805d70 100644 --- a/.github/workflows/capsule-cypress-night-run.yml +++ b/.github/workflows/capsule-cypress-night-run.yml @@ -125,6 +125,7 @@ jobs: CYPRESS_ETH_WALLET_MNEMONIC: ${{ secrets.CYPESS_ETH_WALLET_MNEMONIC }} CYPRESS_NIGHTLY_RUN: true CYPRESS_INCLUDE_FLOWS: true + CYPRESS_TEARDOWN_NETWORK_AFTER_FLOWS: true ###### ## Upload logs diff --git a/.github/workflows/capsule-cypress.yml b/.github/workflows/capsule-cypress.yml index a2eb2a4d1..0a74eb470 100644 --- a/.github/workflows/capsule-cypress.yml +++ b/.github/workflows/capsule-cypress.yml @@ -137,6 +137,7 @@ jobs: CYPRESS_SLACK_WEBHOOK: ${{ secrets.CYPRESS_SLACK_WEBHOOK }} CYPRESS_ETH_WALLET_MNEMONIC: ${{ secrets.CYPESS_ETH_WALLET_MNEMONIC }} CYPRESS_INCLUDE_FLOWS: false + CYPRESS_TEARDOWN_NETWORK_AFTER_FLOWS: true ###### ## Upload logs diff --git a/apps/console-lite-e2e/.env b/apps/console-lite-e2e/.env index b844da7b2..f27ba1733 100644 --- a/apps/console-lite-e2e/.env +++ b/apps/console-lite-e2e/.env @@ -23,5 +23,4 @@ NX_DEPLOY_PRIME_URL=$DEPLOY_PRIME_URL NX_VEGA_URL=https://api.n11.testnet.vega.xyz/graphql NX_VEGA_ENV=TESTNET -NX_VEGA_REST=https://api.n11.testnet.vega.xyz NX_VEGA_WALLET_URL=http://localhost:1789/api/v1 diff --git a/apps/console-lite/.env.capsule b/apps/console-lite/.env.capsule index 57789b63f..03bcc702c 100644 --- a/apps/console-lite/.env.capsule +++ b/apps/console-lite/.env.capsule @@ -1,4 +1,3 @@ # App configuration variables NX_VEGA_URL=http://localhost:3028/query NX_VEGA_ENV=LOCAL -NX_VEGA_REST=http://localhost:3029 diff --git a/apps/console-lite/.env.devnet b/apps/console-lite/.env.devnet index 71f82946b..26a7e5a62 100644 --- a/apps/console-lite/.env.devnet +++ b/apps/console-lite/.env.devnet @@ -2,7 +2,6 @@ NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/devnet-network.json NX_VEGA_URL=https://api.n04.d.vega.xyz/graphql NX_VEGA_ENV=DEVNET -NX_VEGA_REST=https://api.n04.d.vega.xyz NX_VEGA_NETWORKS={\"MAINNET\":\"https://alpha.console.vega.xyz\"} NX_ETHEREUM_PROVIDER_URL=https://ropsten.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 NX_ETHERSCAN_URL=https://ropsten.etherscan.io diff --git a/apps/console-lite/.env.mainnet b/apps/console-lite/.env.mainnet index 63ce90cf6..a02b7e351 100644 --- a/apps/console-lite/.env.mainnet +++ b/apps/console-lite/.env.mainnet @@ -1,8 +1,7 @@ # App configuration variables NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/mainnet-network.json -NX_VEGA_URL=https://api.token.vega.xyz/query +NX_VEGA_URL=https://api.vega.xyz/query NX_VEGA_ENV=MAINNET -NX_VEGA_REST=https://api.token.vega.xyz NX_VEGA_NETWORKS='{\"MAINNET\":\"https://alpha.console.vega.xyz\"}' NX_ETHEREUM_PROVIDER_URL=https://mainnet.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 NX_ETHERSCAN_URL=https://etherscan.io diff --git a/apps/console-lite/.env.stagnet3 b/apps/console-lite/.env.stagnet3 index 66bd82fdd..f682f03a0 100644 --- a/apps/console-lite/.env.stagnet3 +++ b/apps/console-lite/.env.stagnet3 @@ -2,7 +2,6 @@ NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/stagnet3-network.json NX_VEGA_URL=https://api.n01.stagnet3.vega.xyz/graphql NX_VEGA_ENV=STAGNET3 -NX_VEGA_REST=https://api.n01.stagnet3.vega.xyz NX_ETHEREUM_PROVIDER_URL=https://ropsten.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 NX_ETHERSCAN_URL=https://ropsten.etherscan.io NX_VEGA_EXPLORER_URL=https://staging2.explorer.vega.xyz diff --git a/apps/console-lite/.env.testnet b/apps/console-lite/.env.testnet index 53daf2876..34be5e279 100644 --- a/apps/console-lite/.env.testnet +++ b/apps/console-lite/.env.testnet @@ -2,7 +2,6 @@ NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/testnet-network.json NX_VEGA_URL=https://api.n11.testnet.vega.xyz/graphql NX_VEGA_ENV=TESTNET -NX_VEGA_REST=https://api.n11.testnet.vega.xyz NX_VEGA_NETWORKS='{\"MAINNET\":\"https://alpha.console.vega.xyz\"}' NX_ETHEREUM_PROVIDER_URL=https://ropsten.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 NX_ETHERSCAN_URL=https://ropsten.etherscan.io diff --git a/apps/explorer-e2e/.env b/apps/explorer-e2e/.env index cda5965c4..27605548f 100644 --- a/apps/explorer-e2e/.env +++ b/apps/explorer-e2e/.env @@ -3,7 +3,6 @@ NX_TENDERMINT_URL=http://localhost:26617 NX_TENDERMINT_WEBSOCKET_URL=wss://localhost:26617/websocket NX_VEGA_URL=http://localhost:3028/query NX_VEGA_ENV=CUSTOM -NX_VEGA_REST=http://localhost:3029 NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/capsule-network.json CYPRESS_VEGA_TENDERMINT_URL=http://localhost:26617 diff --git a/apps/explorer-e2e/.env.devnet b/apps/explorer-e2e/.env.devnet index 836acdd28..6f14c3b29 100644 --- a/apps/explorer-e2e/.env.devnet +++ b/apps/explorer-e2e/.env.devnet @@ -4,7 +4,6 @@ NX_TENDERMINT_URL=https://n04.d.vega.xyz/tm NX_TENDERMINT_WEBSOCKET_URL=wss://n04.d.vega.xyz/tm/websocket NX_VEGA_URL=https://api.n04.d.vega.xyz/graphql NX_VEGA_ENV=DEVNET -NX_VEGA_REST=https://api.n04.d.vega.xyz # App flags NX_EXPLORER_ASSETS=1 @@ -12,7 +11,7 @@ NX_EXPLORER_GENESIS=1 NX_EXPLORER_GOVERNANCE=1 NX_EXPLORER_MARKETS=1 NX_EXPLORER_ORACLES=1 -NX_EXPLORER_TXS_LIST=1 +NX_EXPLORER_TXS_LIST=0 NX_EXPLORER_NETWORK_PARAMETERS=1 NX_EXPLORER_PARTIES=1 NX_EXPLORER_VALIDATORS=1 diff --git a/apps/explorer-e2e/.env.mainnet b/apps/explorer-e2e/.env.mainnet index 3c8d402c8..5d4f59c14 100644 --- a/apps/explorer-e2e/.env.mainnet +++ b/apps/explorer-e2e/.env.mainnet @@ -2,9 +2,8 @@ NX_CHAIN_EXPLORER_URL=https://explorer.vega.trading/.netlify/functions/chain-explorer-api NX_TENDERMINT_URL=https://mainnet-observer-proxy01.ops.vega.xyz/ NX_TENDERMINT_WEBSOCKET_URL=wss://mainnet-observer-proxy01.ops.vega.xyz/websocket -NX_VEGA_URL=https://api.token.vega.xyz/query +NX_VEGA_URL=https://api.vega.xyz/query NX_VEGA_ENV=MAINNET -NX_VEGA_REST=https://api.token.vega.xyz/ # App flags NX_EXPLORER_ASSETS=1 diff --git a/apps/explorer-e2e/.env.stagnet3 b/apps/explorer-e2e/.env.stagnet3 index 0906be0b4..310e7a99a 100644 --- a/apps/explorer-e2e/.env.stagnet3 +++ b/apps/explorer-e2e/.env.stagnet3 @@ -4,7 +4,6 @@ NX_TENDERMINT_URL=https://n01.stagnet3.vega.xyz/tm NX_TENDERMINT_WEBSOCKET_URL=wss://n01.stagnet3.vega.xyz/tm/websocket NX_VEGA_URL=https://api.n01.stagnet3.vega.xyz/graphql NX_VEGA_ENV=STAGNET3 -NX_VEGA_REST=https://api.n01.stagnet3.vega.xyz # App flags NX_EXPLORER_ASSETS=1 @@ -12,7 +11,7 @@ NX_EXPLORER_GENESIS=1 NX_EXPLORER_GOVERNANCE=1 NX_EXPLORER_MARKETS=1 NX_EXPLORER_ORACLES=1 -NX_EXPLORER_TXS_LIST=1 +NX_EXPLORER_TXS_LIST=0 NX_EXPLORER_NETWORK_PARAMETERS=1 NX_EXPLORER_PARTIES=1 NX_EXPLORER_VALIDATORS=1 diff --git a/apps/explorer-e2e/.env.testnet b/apps/explorer-e2e/.env.testnet index 0878cdcd6..70066cc91 100644 --- a/apps/explorer-e2e/.env.testnet +++ b/apps/explorer-e2e/.env.testnet @@ -1,10 +1,9 @@ # App configuration variables NX_CHAIN_EXPLORER_URL=https://explorer.vega.trading/.netlify/functions/chain-explorer-api -NX_TENDERMINT_URL=https://tm.n06.testnet.vega.xyz/tm +NX_TENDERMINT_URL=https://tm.n07.testnet.vega.xyz/tm NX_TENDERMINT_WEBSOCKET_URL=wss://lb.testnet.vega.xyz/tm/websocket NX_VEGA_URL=https://api.n11.testnet.vega.xyz/graphql NX_VEGA_ENV=TESTNET -NX_VEGA_REST=https://api.n11.testnet.vega.xyz # App flags NX_EXPLORER_ASSETS=1 @@ -12,7 +11,7 @@ NX_EXPLORER_GENESIS=1 NX_EXPLORER_GOVERNANCE=1 NX_EXPLORER_MARKETS=1 NX_EXPLORER_ORACLES=1 -NX_EXPLORER_TXS_LIST=1 +NX_EXPLORER_TXS_LIST=0 NX_EXPLORER_NETWORK_PARAMETERS=1 NX_EXPLORER_PARTIES=1 NX_EXPLORER_VALIDATORS=1 diff --git a/apps/explorer/.env b/apps/explorer/.env index 0671f6c90..939f68973 100644 --- a/apps/explorer/.env +++ b/apps/explorer/.env @@ -1,14 +1,7 @@ -NX_CHAIN_EXPLORER_URL=https://explorer.vega.trading/.netlify/functions/chain-explorer-api -NX_TENDERMINT_URL=http://localhost:26617 -NX_TENDERMINT_WEBSOCKET_URL=wss://localhost:26617/websocket -NX_VEGA_URL=http://localhost:3028/query -NX_VEGA_ENV=CUSTOM - NX_CHAIN_EXPLORER_URL=https://explorer.vega.trading/.netlify/functions/chain-explorer-api NX_TENDERMINT_URL=https://n01.stagnet3.vega.xyz/tm NX_TENDERMINT_WEBSOCKET_URL=wss://n01.stagnet3.vega.xyz/tm/websocket NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/stagnet3-network.json -NX_VEGA_URL=https://api.n01.stagnet3.vega.xyz/graphql NX_VEGA_NETWORKS='{"TESTNET":"https://explorer.fairground.wtf","MAINNET":"https://explorer.vega.xyz"}' NX_VEGA_ENV=STAGNET3 NX_GITHUB_FEEDBACK_URL=https://github.com/vegaprotocol/feedback/discussions @@ -22,4 +15,4 @@ NX_EXPLORER_PARTIES=1 NX_EXPLORER_VALIDATORS=1 NX_EXPLORER_MARKETS=1 NX_EXPLORER_ORACLES=1 -NX_EXPLORER_TXS_LIST=1 +NX_EXPLORER_TXS_LIST=0 diff --git a/apps/explorer/.env.capsule b/apps/explorer/.env.capsule index f360272cc..e41cf2045 100644 --- a/apps/explorer/.env.capsule +++ b/apps/explorer/.env.capsule @@ -13,7 +13,7 @@ NX_EXPLORER_GENESIS=1 NX_EXPLORER_GOVERNANCE=1 NX_EXPLORER_MARKETS=1 NX_EXPLORER_ORACLES=1 -NX_EXPLORER_TXS_LIST=1 +NX_EXPLORER_TXS_LIST=0 NX_EXPLORER_NETWORK_PARAMETERS=1 NX_EXPLORER_PARTIES=1 NX_EXPLORER_VALIDATORS=1 diff --git a/apps/explorer/.env.mainnet b/apps/explorer/.env.mainnet index c5768f82d..13281de02 100644 --- a/apps/explorer/.env.mainnet +++ b/apps/explorer/.env.mainnet @@ -3,7 +3,7 @@ NX_CHAIN_EXPLORER_URL=https://explorer.vega.trading/.netlify/functions/chain-exp NX_TENDERMINT_URL=https://mainnet-observer-proxy01.ops.vega.xyz/ NX_TENDERMINT_WEBSOCKET_URL=wss://mainnet-observer-proxy01.ops.vega.xyz/websocket NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/mainnet-network.json -NX_VEGA_URL=https://api.token.vega.xyz/query +NX_VEGA_URL=https://api.vega.xyz/query NX_VEGA_NETWORKS='{"TESTNET":"https://explorer.fairground.wtf","MAINNET":"https://explorer.vega.xyz"}' NX_VEGA_ENV=MAINNET NX_GITHUB_FEEDBACK_URL=https://github.com/vegaprotocol/feedback/discussions diff --git a/apps/explorer/.env.testnet b/apps/explorer/.env.testnet index 3ad86f521..e90d0804c 100644 --- a/apps/explorer/.env.testnet +++ b/apps/explorer/.env.testnet @@ -1,9 +1,8 @@ # App configuration variables NX_CHAIN_EXPLORER_URL=https://explorer.vega.trading/.netlify/functions/chain-explorer-api -NX_TENDERMINT_URL=https://tm.n06.testnet.vega.xyz -NX_TENDERMINT_WEBSOCKET_URL=wss://tm.n06.testnet.vega.xyz/websocket +NX_TENDERMINT_URL=https://tm.n07.testnet.vega.xyz +NX_TENDERMINT_WEBSOCKET_URL=wss://tm.n07.testnet.vega.xyz/websocket NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/testnet-network.json -NX_VEGA_URL=https://api.n09.testnet.vega.xyz/graphql NX_VEGA_NETWORKS='{"TESTNET":"https://explorer.fairground.wtf","MAINNET":"https://explorer.vega.xyz"}' NX_VEGA_ENV=TESTNET NX_GITHUB_FEEDBACK_URL=https://github.com/vegaprotocol/feedback/discussions diff --git a/apps/explorer/src/app/routes/pending/index.tsx b/apps/explorer/src/app/routes/pending/index.tsx index 88dcf5800..cc4a7fc7a 100644 --- a/apps/explorer/src/app/routes/pending/index.tsx +++ b/apps/explorer/src/app/routes/pending/index.tsx @@ -17,7 +17,6 @@ const PendingTxs = () => { {t('Unconfirmed transactions')} - https://tm.n06.testnet.vega.xyz/tm/unconfirmed_txs
{t(`Number: ${unconfirmedTransactions?.result?.n_txs || 0}`)}

diff --git a/apps/liquidity-provision-dashboard-e2e/.eslintrc.json b/apps/liquidity-provision-dashboard-e2e/.eslintrc.json new file mode 100644 index 000000000..696cb8b12 --- /dev/null +++ b/apps/liquidity-provision-dashboard-e2e/.eslintrc.json @@ -0,0 +1,10 @@ +{ + "extends": ["plugin:cypress/recommended", "../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + } + ] +} diff --git a/apps/liquidity-provision-dashboard-e2e/cypress.config.js b/apps/liquidity-provision-dashboard-e2e/cypress.config.js new file mode 100644 index 000000000..18eb4aa47 --- /dev/null +++ b/apps/liquidity-provision-dashboard-e2e/cypress.config.js @@ -0,0 +1,24 @@ +const { defineConfig } = require('cypress'); + +module.exports = defineConfig({ + projectId: 'et4snf', + + e2e: { + baseUrl: 'http://localhost:4200', + fileServerFolder: '.', + fixturesFolder: false, + specPattern: './src/integration/*.ts', + excludeSpecPattern: '**/*.js', + modifyObstructiveCode: false, + supportFile: './src/support/index.ts', + video: true, + videoUploadOnPasses: false, + videosFolder: + '../../dist/cypress/apps/liquidity-provision-dashboard-e2e/videos', + screenshotsFolder: + '../../dist/cypress/apps/liquidity-provision-dashboard-e2e/screenshots', + chromeWebSecurity: false, + viewportWidth: 1440, + viewportHeight: 900, + }, +}); diff --git a/apps/liquidity-provision-dashboard-e2e/project.json b/apps/liquidity-provision-dashboard-e2e/project.json new file mode 100644 index 000000000..5167181d3 --- /dev/null +++ b/apps/liquidity-provision-dashboard-e2e/project.json @@ -0,0 +1,30 @@ +{ + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "apps/liquidity-provision-dashboard-e2e/src", + "projectType": "application", + "targets": { + "e2e": { + "executor": "@nrwl/cypress:cypress", + "options": { + "cypressConfig": "apps/liquidity-provision-dashboard-e2e/cypress.config.js", + "devServerTarget": "liquidity-provision-dashboard:serve" + }, + "configurations": { + "production": { + "devServerTarget": "liquidity-provision-dashboard:serve:production" + } + } + }, + "lint": { + "executor": "@nrwl/linter:eslint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": [ + "apps/liquidity-provision-dashboard-e2e/**/*.{js,ts}" + ] + } + } + }, + "tags": [], + "implicitDependencies": ["liquidity-provision-dashboard"] +} diff --git a/apps/liquidity-provision-dashboard-e2e/src/integration/app.cy.ts b/apps/liquidity-provision-dashboard-e2e/src/integration/app.cy.ts new file mode 100644 index 000000000..44a70d0f5 --- /dev/null +++ b/apps/liquidity-provision-dashboard-e2e/src/integration/app.cy.ts @@ -0,0 +1,10 @@ +import { getGreeting } from '../support/app.po'; + +describe('liquidity-provision-dashboard', () => { + beforeEach(() => cy.visit('/')); + + it('should display welcome message', () => { + // Function helper example, see `../support/app.po.ts` file + getGreeting().contains('Top liquidity opportunities'); + }); +}); diff --git a/apps/liquidity-provision-dashboard-e2e/src/support/app.po.ts b/apps/liquidity-provision-dashboard-e2e/src/support/app.po.ts new file mode 100644 index 000000000..329342469 --- /dev/null +++ b/apps/liquidity-provision-dashboard-e2e/src/support/app.po.ts @@ -0,0 +1 @@ +export const getGreeting = () => cy.get('h1'); diff --git a/apps/liquidity-provision-dashboard-e2e/src/support/commands.ts b/apps/liquidity-provision-dashboard-e2e/src/support/commands.ts new file mode 100644 index 000000000..07164efbe --- /dev/null +++ b/apps/liquidity-provision-dashboard-e2e/src/support/commands.ts @@ -0,0 +1,9 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** diff --git a/apps/liquidity-provision-dashboard-e2e/src/support/index.ts b/apps/liquidity-provision-dashboard-e2e/src/support/index.ts new file mode 100644 index 000000000..4eb76794f --- /dev/null +++ b/apps/liquidity-provision-dashboard-e2e/src/support/index.ts @@ -0,0 +1,19 @@ +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +import '@vegaprotocol/cypress'; +import 'cypress-real-events/support'; +// Import commands.js using ES2015 syntax: +import './commands'; diff --git a/apps/liquidity-provision-dashboard-e2e/tsconfig.json b/apps/liquidity-provision-dashboard-e2e/tsconfig.json new file mode 100644 index 000000000..f07c97b80 --- /dev/null +++ b/apps/liquidity-provision-dashboard-e2e/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "jsx": "react-jsx", + "sourceMap": false, + "allowSyntheticDefaultImports": true, + "outDir": "../../dist/out-tsc", + "allowJs": true, + "types": ["cypress", "node", "cypress-real-events"] + }, + "include": ["src/**/*.ts", "src/**/*.js"] +} diff --git a/apps/liquidity-provision-dashboard/.babelrc b/apps/liquidity-provision-dashboard/.babelrc new file mode 100644 index 000000000..61641ec8a --- /dev/null +++ b/apps/liquidity-provision-dashboard/.babelrc @@ -0,0 +1,11 @@ +{ + "presets": [ + [ + "@nrwl/react/babel", + { + "runtime": "automatic" + } + ] + ], + "plugins": [] +} diff --git a/apps/liquidity-provision-dashboard/.browserslistrc b/apps/liquidity-provision-dashboard/.browserslistrc new file mode 100644 index 000000000..f1d12df4f --- /dev/null +++ b/apps/liquidity-provision-dashboard/.browserslistrc @@ -0,0 +1,16 @@ +# This file is used by: +# 1. autoprefixer to adjust CSS to support the below specified browsers +# 2. babel preset-env to adjust included polyfills +# +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries +# +# If you need to support different browsers in production, you may tweak the list below. + +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major version +last 2 iOS major versions +Firefox ESR +not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/apps/liquidity-provision-dashboard/.env b/apps/liquidity-provision-dashboard/.env new file mode 100644 index 000000000..70a5992d9 --- /dev/null +++ b/apps/liquidity-provision-dashboard/.env @@ -0,0 +1,27 @@ +# React Environment Variables +# https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables#expanding-environment-variables-in-env + +# Netlify Environment Variables +# https://www.netlify.com/docs/continuous-deployment/#environment-variables +NX_VERSION=$npm_package_version +NX_REPOSITORY_URL=$REPOSITORY_URL +NX_BRANCH=$BRANCH +NX_PULL_REQUEST=$PULL_REQUEST +NX_HEAD=$HEAD +NX_COMMIT_REF=$COMMIT_REF +NX_CONTEXT=$CONTEXT +NX_REVIEW_ID=$REVIEW_ID +NX_INCOMING_HOOK_TITLE=$INCOMING_HOOK_TITLE +NX_INCOMING_HOOK_URL=$INCOMING_HOOK_URL +NX_INCOMING_HOOK_BODY=$INCOMING_HOOK_BODY +NX_URL=$URL +NX_DEPLOY_URL=$DEPLOY_URL +NX_DEPLOY_PRIME_URL=$DEPLOY_PRIME_URL +NX_VEGA_CONFIG_URL="https://static.vega.xyz/assets/testnet-network.json" +NX_VEGA_ENV = 'TESTNET' +NX_VEGA_URL="https://api.n11.testnet.vega.xyz/graphql" +NX_VEGA_WALLET_URL=http://localhost:1789/api/v1 +NX_ETHEREUM_PROVIDER_URL=https://ropsten.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 +NX_ETHERSCAN_URL=https://ropsten.etherscan.io +NX_VEGA_NETWORKS={"MAINNET":"https://alpha.console.vega.xyz"} +NX_VEGA_EXPLORER_URL=https://explorer.fairground.wtf diff --git a/apps/liquidity-provision-dashboard/.env.capsule b/apps/liquidity-provision-dashboard/.env.capsule new file mode 100644 index 000000000..03bcc702c --- /dev/null +++ b/apps/liquidity-provision-dashboard/.env.capsule @@ -0,0 +1,3 @@ +# App configuration variables +NX_VEGA_URL=http://localhost:3028/query +NX_VEGA_ENV=LOCAL diff --git a/apps/liquidity-provision-dashboard/.env.devnet b/apps/liquidity-provision-dashboard/.env.devnet new file mode 100644 index 000000000..26a7e5a62 --- /dev/null +++ b/apps/liquidity-provision-dashboard/.env.devnet @@ -0,0 +1,8 @@ +# App configuration variables +NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/devnet-network.json +NX_VEGA_URL=https://api.n04.d.vega.xyz/graphql +NX_VEGA_ENV=DEVNET +NX_VEGA_NETWORKS={\"MAINNET\":\"https://alpha.console.vega.xyz\"} +NX_ETHEREUM_PROVIDER_URL=https://ropsten.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 +NX_ETHERSCAN_URL=https://ropsten.etherscan.io +NX_VEGA_EXPLORER_URL=https://dev.explorer.vega.xyz diff --git a/apps/liquidity-provision-dashboard/.env.mainnet b/apps/liquidity-provision-dashboard/.env.mainnet new file mode 100644 index 000000000..a02b7e351 --- /dev/null +++ b/apps/liquidity-provision-dashboard/.env.mainnet @@ -0,0 +1,8 @@ +# App configuration variables +NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/mainnet-network.json +NX_VEGA_URL=https://api.vega.xyz/query +NX_VEGA_ENV=MAINNET +NX_VEGA_NETWORKS='{\"MAINNET\":\"https://alpha.console.vega.xyz\"}' +NX_ETHEREUM_PROVIDER_URL=https://mainnet.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 +NX_ETHERSCAN_URL=https://etherscan.io +NX_VEGA_EXPLORER_URL=https://explorer.vega.xyz diff --git a/apps/liquidity-provision-dashboard/.env.stagnet3 b/apps/liquidity-provision-dashboard/.env.stagnet3 new file mode 100644 index 000000000..f682f03a0 --- /dev/null +++ b/apps/liquidity-provision-dashboard/.env.stagnet3 @@ -0,0 +1,7 @@ +# App configuration variables +NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/stagnet3-network.json +NX_VEGA_URL=https://api.n01.stagnet3.vega.xyz/graphql +NX_VEGA_ENV=STAGNET3 +NX_ETHEREUM_PROVIDER_URL=https://ropsten.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 +NX_ETHERSCAN_URL=https://ropsten.etherscan.io +NX_VEGA_EXPLORER_URL=https://staging2.explorer.vega.xyz diff --git a/apps/liquidity-provision-dashboard/.env.testnet b/apps/liquidity-provision-dashboard/.env.testnet new file mode 100644 index 000000000..34be5e279 --- /dev/null +++ b/apps/liquidity-provision-dashboard/.env.testnet @@ -0,0 +1,8 @@ +# App configuration variables +NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/testnet-network.json +NX_VEGA_URL=https://api.n11.testnet.vega.xyz/graphql +NX_VEGA_ENV=TESTNET +NX_VEGA_NETWORKS='{\"MAINNET\":\"https://alpha.console.vega.xyz\"}' +NX_ETHEREUM_PROVIDER_URL=https://ropsten.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 +NX_ETHERSCAN_URL=https://ropsten.etherscan.io +NX_VEGA_EXPLORER_URL=https://explorer.fairground.wtf diff --git a/apps/liquidity-provision-dashboard/.eslintrc.json b/apps/liquidity-provision-dashboard/.eslintrc.json new file mode 100644 index 000000000..de2a9b877 --- /dev/null +++ b/apps/liquidity-provision-dashboard/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "extends": ["plugin:@nrwl/nx/react", "../../.eslintrc.json"], + "ignorePatterns": ["!**/*", "__generated__", "__generated___"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + } + ] +} diff --git a/apps/liquidity-provision-dashboard/jest.config.ts b/apps/liquidity-provision-dashboard/jest.config.ts new file mode 100644 index 000000000..50eb9d9ee --- /dev/null +++ b/apps/liquidity-provision-dashboard/jest.config.ts @@ -0,0 +1,11 @@ +/* eslint-disable */ +export default { + displayName: 'liquidity-provision-dashboard', + preset: '../../jest.preset.js', + transform: { + '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nrwl/react/plugins/jest', + '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nrwl/next/babel'] }], + }, + moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], + coverageDirectory: '../../coverage/apps/liquidity-provision-dashboard', +}; diff --git a/apps/liquidity-provision-dashboard/netlify.toml b/apps/liquidity-provision-dashboard/netlify.toml new file mode 100644 index 000000000..b87b8d3dd --- /dev/null +++ b/apps/liquidity-provision-dashboard/netlify.toml @@ -0,0 +1,4 @@ +[[redirects]] + from = "/*" + to = "/index.html" + status = 200 diff --git a/apps/liquidity-provision-dashboard/postcss.config.js b/apps/liquidity-provision-dashboard/postcss.config.js new file mode 100644 index 000000000..cbdd9c22c --- /dev/null +++ b/apps/liquidity-provision-dashboard/postcss.config.js @@ -0,0 +1,10 @@ +const { join } = require('path'); + +module.exports = { + plugins: { + tailwindcss: { + config: join(__dirname, 'tailwind.config.js'), + }, + autoprefixer: {}, + }, +}; diff --git a/apps/liquidity-provision-dashboard/project.json b/apps/liquidity-provision-dashboard/project.json new file mode 100644 index 000000000..85fe32878 --- /dev/null +++ b/apps/liquidity-provision-dashboard/project.json @@ -0,0 +1,93 @@ +{ + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "apps/liquidity-provision-dashboard/src", + "projectType": "application", + "targets": { + "build": { + "executor": "@nrwl/web:webpack", + "outputs": ["{options.outputPath}"], + "defaultConfiguration": "production", + "options": { + "compiler": "babel", + "outputPath": "dist/apps/liquidity-provision-dashboard", + "index": "apps/liquidity-provision-dashboard/src/index.html", + "baseHref": "/", + "main": "apps/liquidity-provision-dashboard/src/main.tsx", + "polyfills": "apps/liquidity-provision-dashboard/src/polyfills.ts", + "tsConfig": "apps/liquidity-provision-dashboard/tsconfig.app.json", + "assets": [ + "apps/liquidity-provision-dashboard/src/favicon.ico", + "apps/liquidity-provision-dashboard/src/assets" + ], + "styles": ["apps/liquidity-provision-dashboard/src/styles.scss"], + "scripts": [], + "webpackConfig": "@nrwl/react/plugins/webpack" + }, + "configurations": { + "development": { + "extractLicenses": false, + "optimization": false, + "sourceMap": true, + "vendorChunk": true + }, + "production": { + "fileReplacements": [ + { + "replace": "apps/liquidity-provision-dashboard/src/environments/environment.ts", + "with": "apps/liquidity-provision-dashboard/src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false + } + } + }, + "serve": { + "executor": "./tools/executors/webpack:serve", + "options": { + "buildTarget": "liquidity-provision-dashboard:build", + "hmr": true + }, + "configurations": { + "development": { + "buildTarget": "liquidity-provision-dashboard:build:development" + }, + "production": { + "buildTarget": "liquidity-provision-dashboard:build:production", + "hmr": false + } + } + }, + "lint": { + "executor": "@nrwl/linter:eslint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": [ + "apps/liquidity-provision-dashboard/**/*.{ts,tsx,js,jsx}" + ] + } + }, + "test": { + "executor": "@nrwl/jest:jest", + "outputs": ["coverage/apps/liquidity-provision-dashboard"], + "options": { + "jestConfig": "apps/liquidity-provision-dashboard/jest.config.ts", + "passWithNoTests": true + } + }, + "build-netlify": { + "executor": "@nrwl/workspace:run-commands", + "options": { + "commands": [ + "cp apps/liquidity-provision-dashboard/netlify.toml netlify.toml", + "nx build liquidity-provision-dashboard" + ] + } + } + }, + "tags": [] +} diff --git a/apps/liquidity-provision-dashboard/src/app/app.tsx b/apps/liquidity-provision-dashboard/src/app/app.tsx new file mode 100644 index 000000000..b939af942 --- /dev/null +++ b/apps/liquidity-provision-dashboard/src/app/app.tsx @@ -0,0 +1,11 @@ +import '../styles.scss'; + +export function App() { + return ( +
+

Top liquidity opportunities

+
+ ); +} + +export default App; diff --git a/apps/liquidity-provision-dashboard/src/assets/.gitkeep b/apps/liquidity-provision-dashboard/src/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/apps/liquidity-provision-dashboard/src/environments/environment.prod.ts b/apps/liquidity-provision-dashboard/src/environments/environment.prod.ts new file mode 100644 index 000000000..c9669790b --- /dev/null +++ b/apps/liquidity-provision-dashboard/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true, +}; diff --git a/apps/liquidity-provision-dashboard/src/environments/environment.ts b/apps/liquidity-provision-dashboard/src/environments/environment.ts new file mode 100644 index 000000000..7ed83767f --- /dev/null +++ b/apps/liquidity-provision-dashboard/src/environments/environment.ts @@ -0,0 +1,6 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// When building for production, this file is replaced with `environment.prod.ts`. + +export const environment = { + production: false, +}; diff --git a/apps/liquidity-provision-dashboard/src/favicon.ico b/apps/liquidity-provision-dashboard/src/favicon.ico new file mode 100644 index 000000000..317ebcb23 Binary files /dev/null and b/apps/liquidity-provision-dashboard/src/favicon.ico differ diff --git a/apps/liquidity-provision-dashboard/src/index.html b/apps/liquidity-provision-dashboard/src/index.html new file mode 100644 index 000000000..aa720ffde --- /dev/null +++ b/apps/liquidity-provision-dashboard/src/index.html @@ -0,0 +1,23 @@ + + + + + Liquidity Provision Dashboard + + + + + + + + + +
+ + diff --git a/apps/liquidity-provision-dashboard/src/main.tsx b/apps/liquidity-provision-dashboard/src/main.tsx new file mode 100644 index 000000000..12b643f73 --- /dev/null +++ b/apps/liquidity-provision-dashboard/src/main.tsx @@ -0,0 +1,13 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app/app'; + +const rootElement = document.getElementById('root'); +const root = rootElement && createRoot(rootElement); + +root?.render( + + + +); diff --git a/apps/liquidity-provision-dashboard/src/polyfills.ts b/apps/liquidity-provision-dashboard/src/polyfills.ts new file mode 100644 index 000000000..2adf3d05b --- /dev/null +++ b/apps/liquidity-provision-dashboard/src/polyfills.ts @@ -0,0 +1,7 @@ +/** + * Polyfill stable language features. These imports will be optimized by `@babel/preset-env`. + * + * See: https://github.com/zloirock/core-js#babel + */ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; diff --git a/apps/liquidity-provision-dashboard/src/styles.scss b/apps/liquidity-provision-dashboard/src/styles.scss new file mode 100644 index 000000000..77ee41885 --- /dev/null +++ b/apps/liquidity-provision-dashboard/src/styles.scss @@ -0,0 +1,8 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +html, +body { + @apply h-full; +} diff --git a/apps/liquidity-provision-dashboard/tailwind.config.js b/apps/liquidity-provision-dashboard/tailwind.config.js new file mode 100644 index 000000000..e127aabb4 --- /dev/null +++ b/apps/liquidity-provision-dashboard/tailwind.config.js @@ -0,0 +1,16 @@ +const { join } = require('path'); +const { createGlobPatternsForDependencies } = require('@nrwl/next/tailwind'); +const theme = require('../../libs/tailwindcss-config/src/theme-lite'); +const vegaCustomClasses = require('../../libs/tailwindcss-config/src/vega-custom-classes'); +const vegaCustomClassesLite = require('../../libs/tailwindcss-config/src/vega-custom-classes-lite'); + +module.exports = { + content: [ + join(__dirname, 'src/**/*.{js,ts,jsx,tsx}'), + 'libs/ui-toolkit/src/utils/shared.ts', + ...createGlobPatternsForDependencies(__dirname), + ], + darkMode: 'class', + theme, + plugins: [vegaCustomClasses, vegaCustomClassesLite], +}; diff --git a/apps/liquidity-provision-dashboard/tsconfig.app.json b/apps/liquidity-provision-dashboard/tsconfig.app.json new file mode 100644 index 000000000..af84f21cf --- /dev/null +++ b/apps/liquidity-provision-dashboard/tsconfig.app.json @@ -0,0 +1,23 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "types": ["node"] + }, + "files": [ + "../../node_modules/@nrwl/react/typings/cssmodule.d.ts", + "../../node_modules/@nrwl/react/typings/image.d.ts" + ], + "exclude": [ + "jest.config.ts", + "**/*.spec.ts", + "**/*.test.ts", + "**/*.spec.tsx", + "**/*.test.tsx", + "**/*.spec.js", + "**/*.test.js", + "**/*.spec.jsx", + "**/*.test.jsx" + ], + "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"] +} diff --git a/apps/liquidity-provision-dashboard/tsconfig.json b/apps/liquidity-provision-dashboard/tsconfig.json new file mode 100644 index 000000000..9657042e4 --- /dev/null +++ b/apps/liquidity-provision-dashboard/tsconfig.json @@ -0,0 +1,25 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "jsx": "react-jsx", + "allowJs": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.app.json" + }, + { + "path": "./tsconfig.spec.json" + } + ] +} diff --git a/apps/liquidity-provision-dashboard/tsconfig.spec.json b/apps/liquidity-provision-dashboard/tsconfig.spec.json new file mode 100644 index 000000000..b81742079 --- /dev/null +++ b/apps/liquidity-provision-dashboard/tsconfig.spec.json @@ -0,0 +1,27 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node", "@testing-library/jest-dom"], + "jsx": "react", + "allowSyntheticDefaultImports": true, + "esModuleInterop": true + }, + "include": [ + "jest.config.ts", + "**/*.test.ts", + "**/*.spec.ts", + "**/*.test.tsx", + "**/*.spec.tsx", + "**/*.test.js", + "**/*.spec.js", + "**/*.test.jsx", + "**/*.spec.jsx", + "**/*.d.ts" + ], + "files": [ + "../../node_modules/@nrwl/react/typings/cssmodule.d.ts", + "../../node_modules/@nrwl/react/typings/image.d.ts" + ] +} diff --git a/apps/static/src/assets/mainnet-tranches.json b/apps/static/src/assets/mainnet-tranches.json index 361a8f84c..1a5cb0c73 100644 --- a/apps/static/src/assets/mainnet-tranches.json +++ b/apps/static/src/assets/mainnet-tranches.json @@ -232,7 +232,7 @@ "tranche_end": "2023-12-05T00:00:00.000Z", "total_added": "129999.45", "total_removed": "0", - "locked_amount": "105976.264304259812221395", + "locked_amount": "104553.030725428322885925", "deposits": [ { "amount": "129999.45", @@ -298,7 +298,7 @@ "tranche_end": "2023-09-03T00:00:00.000Z", "total_added": "52600", "total_removed": "0", - "locked_amount": "50976.26021689498118", + "locked_amount": "50111.67440385590734", "deposits": [ { "amount": "2600", @@ -471,7 +471,7 @@ "tranche_end": "2023-09-17T00:00:00.000Z", "total_added": "5000", "total_removed": "0", - "locked_amount": "5000", + "locked_amount": "4955.247970573313", "deposits": [ { "amount": "5000", @@ -682,7 +682,7 @@ "tranche_end": "2023-04-05T00:00:00.000Z", "total_added": "97499.58", "total_removed": "0", - "locked_amount": "47175.044769823978288218", + "locked_amount": "45778.9852091951763043974", "deposits": [ { "amount": "97499.58", @@ -715,7 +715,7 @@ "tranche_end": "2023-04-05T00:00:00.000Z", "total_added": "135173.4239508", "total_removed": "0", - "locked_amount": "64480.141768636601369704113192", + "locked_amount": "62571.96936888537330052058844", "deposits": [ { "amount": "135173.4239508", @@ -748,7 +748,7 @@ "tranche_end": "2023-04-05T00:00:00.000Z", "total_added": "32499.86", "total_removed": "0", - "locked_amount": "19845.726665217117312254", + "locked_amount": "19258.4285167196552432", "deposits": [ { "amount": "32499.86", @@ -781,7 +781,7 @@ "tranche_end": "2023-04-05T00:00:00.000Z", "total_added": "10833.29", "total_removed": "0", - "locked_amount": "6459.591451155024169936", + "locked_amount": "6268.431602825435224766", "deposits": [ { "amount": "10833.29", @@ -889,7 +889,7 @@ "tranche_end": "2022-11-01T00:00:00.000Z", "total_added": "30000", "total_removed": "0", - "locked_amount": "7782.4898097826089", + "locked_amount": "6804.310084541064", "deposits": [ { "amount": "7500", @@ -1006,7 +1006,7 @@ "tranche_end": "2023-06-02T00:00:00.000Z", "total_added": "1939928.38", "total_removed": "479504.6187210477481", - "locked_amount": "1385760.488806090341208758", + "locked_amount": "1353873.900295446554381604", "deposits": [ { "amount": "1852091.69", @@ -1292,7 +1292,7 @@ "tranche_end": "2023-02-01T00:00:00.000Z", "total_added": "42500", "total_removed": "0", - "locked_amount": "32275.193897192028", + "locked_amount": "30889.43928643316975", "deposits": [ { "amount": "12500", @@ -1344,7 +1344,7 @@ "tranche_start": "2021-09-03T00:00:00.000Z", "tranche_end": "2022-03-03T00:00:00.000Z", "total_added": "3145.41", - "total_removed": "1660.74", + "total_removed": "1706.74", "locked_amount": "0", "deposits": [ { @@ -1509,6 +1509,11 @@ } ], "withdrawals": [ + { + "amount": "46", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0xbd8f383ce50ab498c602d786bb8b1f11b5333019131bd1e72bf7289b46d9250d" + }, { "amount": "490", "user": "0xF374252B4BdB32D9f3aD257b7ED202f55B8aD29B", @@ -1996,10 +2001,17 @@ "tx": "0x64d2d73b257ce45475eb3645d3ae185388897affc9cb83caf6f3e7b19c008c60" } ], - "withdrawals": [], + "withdrawals": [ + { + "amount": "46", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 12, + "tx": "0xbd8f383ce50ab498c602d786bb8b1f11b5333019131bd1e72bf7289b46d9250d" + } + ], "total_tokens": "46", - "withdrawn_tokens": "0", - "remaining_tokens": "46" + "withdrawn_tokens": "46", + "remaining_tokens": "0" }, { "address": "0xC50b335534FeDB756Fc5081091D0AC3187C6C6DD", @@ -2159,7 +2171,7 @@ "tranche_end": "2022-09-30T00:00:00.000Z", "total_added": "60916.66666633337", "total_removed": "20696.25757434884556896", - "locked_amount": "2457.37898413897720690580483922552", + "locked_amount": "1520.27723368905739243961695217578", "deposits": [ { "amount": "2833.333333", @@ -3710,7 +3722,7 @@ "tranche_start": "2021-07-15T23:37:11.000Z", "tranche_end": "2021-07-15T23:37:11.000Z", "total_added": "4915969.150000000000000001", - "total_removed": "4913402.640000000000000001", + "total_removed": "4913483.280000000000000001", "locked_amount": "0", "deposits": [ { @@ -4185,6 +4197,11 @@ } ], "withdrawals": [ + { + "amount": "80.64", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0x753a290f4d0c6df9687ecd7140161c3b37567c4f04bb8da153c5ae0599cb4090" + }, { "amount": "285000", "user": "0xb2d6DEC77558Cf8EdB7c428d23E70Eab0688544f", @@ -5556,10 +5573,17 @@ "tx": "0x9c770b445ce480ad63770230a3bd2f0b01dcffa983860ef6d6a1292e9034e3ee" } ], - "withdrawals": [], + "withdrawals": [ + { + "amount": "80.64", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 10, + "tx": "0x753a290f4d0c6df9687ecd7140161c3b37567c4f04bb8da153c5ae0599cb4090" + } + ], "total_tokens": "80.64", - "withdrawn_tokens": "0", - "remaining_tokens": "80.64" + "withdrawn_tokens": "80.64", + "remaining_tokens": "0" }, { "address": "0xC50b335534FeDB756Fc5081091D0AC3187C6C6DD", @@ -5892,8 +5916,8 @@ "tranche_id": 11, "tranche_start": "2021-09-03T00:00:00.000Z", "tranche_end": "2022-09-03T00:00:00.000Z", - "total_added": "35972.000000000000000003", - "total_removed": "17098.49537348884", + "total_added": "37208.000000000000000003", + "total_removed": "20344.61400743624", "locked_amount": "0", "deposits": [ { @@ -5921,6 +5945,191 @@ "user": "0x60901F5a6a66BCaD910A97e85373A00996B361f5", "tx": "0x056bbadf095fbbee4dc0ccac4431c998c65ad3e714a76844c71bdb0509b0ced5" }, + { + "amount": "10", + "user": "0x4CBbb46fB3520110F82F1DDa0F5a245750C8AFcd", + "tx": "0x2007cd89b0e7c29a63aebe04ffe544e14108689187ace7c7fc677d0efe01b1bf" + }, + { + "amount": "22", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tx": "0x7f95c725da48e9f8c0f573b3d85f60a0be076a4ba648569692939e626ab82ddd" + }, + { + "amount": "22", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tx": "0x46ebe74a6facb701a998dc734576ecfc0c9ac57596f00a53a042b1c54d36aee9" + }, + { + "amount": "22", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tx": "0xf2a7107884acd060acfadc5fa90cb19218698f833df7b61d4fa7c0def8eeb109" + }, + { + "amount": "22", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tx": "0xc323f680a4bdc82d6c4353ef4a09adb287fb02174e666f17d87a47b86dba4c65" + }, + { + "amount": "22", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tx": "0x2c4f9bd25af8fbaffd0ae6d4fb30a3a1f0e03891167f6cacdb37909032c0ae56" + }, + { + "amount": "22", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tx": "0x458a8a51e05edd48bf51a9187c4346f3a6860e170fd9405fa26c90dfe1e4ef49" + }, + { + "amount": "26", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tx": "0xfd25103eb2621e9ec0496b1b56d5dacaf8ae776fae49a46ae4178832a09e1698" + }, + { + "amount": "125", + "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "tx": "0x281c5bc02dcb6595f0b5f2f534fa0077ef4f6907aee78086f001716b1405225a" + }, + { + "amount": "26", + "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "tx": "0x77b92dd495c35af26ed6067d0faa589578670b9702fac97ff2a00c501c217509" + }, + { + "amount": "100", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0x407a4cabfde7c0fa883be394634783e272818e95a665ec066fe4928e7ec3477b" + }, + { + "amount": "90", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0xb702256adf88ba04c8475cf189576d5dc80ab63cd8bd2a00cde41891541f88e9" + }, + { + "amount": "26", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0x48af7bf7089977ea0e830f31ebe6082d0c1206787ce6eaec94d14815daeaee7a" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0x226c1935e8f4bad435d6d198d760df17a4f951381dce3d0dd82570235d4a0c3d" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0x5c2458ac46ff62928a13d9d7f842a6f90f020f7f166d0ee9d1c1bf8fcf88b050" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0xa0cea30b0f6de376b3a57a37a00b8cf558ed47de07493a0719e6d6edb3a94e5e" + }, + { + "amount": "30", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0x4cbd4310c6c43325be4607de07f98e0d118c4d2eafcd334ae30a150c2ae6b20f" + }, + { + "amount": "30", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0x99520cbadeaf60a7b271d1541e7158d3f3fe2f27b6d7cd3a3992a9c2a1cf9fe3" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0xb759a4000f5069a73093325fe6f1fc0a6d0fcda2801483223b319a0e7e3729a4" + }, + { + "amount": "50", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tx": "0x95d890ef632871e5dd6ffc406c74007d6894c99167f36ea26d988ac37d1dcfe6" + }, + { + "amount": "46", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0xfe63acb6fd6d5809cb7a4a1dd7dc24c739a615cbf1cbe8f803c97d8b188c9636" + }, + { + "amount": "80", + "user": "0xb4eE687f019A8e48F7087f4b4f8653208B8cc48f", + "tx": "0xe7af0e0a5c7c87fb16acf2ee5c040d9630e9817ead76266fbcdef9b6b4ae380f" + }, + { + "amount": "2", + "user": "0x60901F5a6a66BCaD910A97e85373A00996B361f5", + "tx": "0x1953c94e6f8de7b448d3db802053a3e5416df00ad15044b4cf568feccaeca461" + }, + { + "amount": "2", + "user": "0x60901F5a6a66BCaD910A97e85373A00996B361f5", + "tx": "0xe89e7028c10881ddb2864d28a7447c000e8db8195fe42bdb45a9a8bcd79e7b5e" + }, + { + "amount": "2", + "user": "0x60901F5a6a66BCaD910A97e85373A00996B361f5", + "tx": "0x3eda46524a53e53206ce71e94d5dea72549cbfd099a0ba8cc937e35f6adc5761" + }, + { + "amount": "2", + "user": "0x60901F5a6a66BCaD910A97e85373A00996B361f5", + "tx": "0xcb0d69feacca65cbccd0665cb408e6533076ce7e4bfa49166d9985c1785f1d7c" + }, + { + "amount": "125", + "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", + "tx": "0x52bc186e955219235458e0cbf11cd2f13bc4daa5202ca370b3f72ee3734bfccd" + }, + { + "amount": "100", + "user": "0xBF8C00ee066421c2c6daE50835c2a7AD939db752", + "tx": "0x1852b187bf2d5bd749d662f7a8482961f1a52edd9c8f185b044c2c0b5d6bb4fa" + }, + { + "amount": "30", + "user": "0xBF8C00ee066421c2c6daE50835c2a7AD939db752", + "tx": "0x1db2c2623d19a606509363fc642bf5c1e3084ebdc4d1fc2271b54df503a3ddda" + }, + { + "amount": "20", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tx": "0xb082adf1e0b96051e02cdb0c3ea48959deee55818816a641cc37f2d3f531c8ce" + }, + { + "amount": "22", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tx": "0xe1d512f7d9944318ba9bb3dd423a4c21a37d5e2eac9c2f3583082d42d882ae53" + }, + { + "amount": "20", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tx": "0x8c773b8d3d0c358b1a2cde70e55ee8fc024925cbaba27610aa8cda7a3f0982df" + }, + { + "amount": "20", + "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", + "tx": "0x4cd4c6272592dcf1757b7c297f75c372de8bd3b21e74aa3b86525fb6b9d042b0" + }, + { + "amount": "10", + "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "tx": "0x36815473d11747ecd8141238de6e1c4a6bd9668386e49690021fcc4dfaaeec01" + }, + { + "amount": "10", + "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "tx": "0x9ff1db5dd580c99848566e8707b70f5b2fa500e9e25251e63d1ca8980c8cfd90" + }, + { + "amount": "10", + "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "tx": "0x81d46a9312db19aebe49f140a6be6188a2d52153da0799b6127f18760abde412" + }, + { + "amount": "10", + "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "tx": "0xb8adbe8809c1fba698e91947eca4935a0aa51109b9b3b13e6a57fa0bfa86a47d" + }, { "amount": "15", "user": "0xb4eE687f019A8e48F7087f4b4f8653208B8cc48f", @@ -11883,6 +12092,81 @@ "user": "0x95175E9AEF72e1c5cEbE2766216FD6dAd2B9cDE6", "tx": "0x427c4a75b78bd0988ab9f5f0d65ce4af60f2b1f67a38f7f01ae6306f64ae7498" }, + { + "amount": "45", + "user": "0x5c690a0403c2FaeC058F2d0BD654299b8714579a", + "tx": "0x5422615ca2d2dfccd32c1c11b633a7f38b99406ffd4f136e07a9860e8e29dd22" + }, + { + "amount": "682.157613525", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tx": "0x2074263108f1bc47540dc64e04f9c839ae1245ba94fa393c958564d2c07c2e7b" + }, + { + "amount": "12", + "user": "0x311944e80915b08248111173671093623Fd74851", + "tx": "0xaf6e5941c7b0611640cc3891f6e4f7c53993161506df3519aac50d60600203c9" + }, + { + "amount": "158", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tx": "0x35f51342e5a5e58491c7ad833cf4cdc15460d9c5b3c80d7fca3a5a42120e197b" + }, + { + "amount": "153.738397388", + "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "tx": "0x2799670258465a9c65fc610f1a04b5a8294ad6ac296759d75b261d5ff3b993a6" + }, + { + "amount": "1228", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tx": "0xa22c86ed3e907214b5e3563d6b08dfc7df8d4df001cf277751e331f8f096c0d1" + }, + { + "amount": "22", + "user": "0x60901F5a6a66BCaD910A97e85373A00996B361f5", + "tx": "0x9b0d52fc2481bbee8c3604b23701923a3e9d53ea422a92da93956e3ac120df40" + }, + { + "amount": "282", + "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", + "tx": "0xe1683288de3b780af3ed5de2a0c101c12f01ca827205f933289126cf20839abd" + }, + { + "amount": "12", + "user": "0xBdEF6D978a33cC8E7cf06E659dEd1487953355D2", + "tx": "0xbdf2776a08ad91fa5dcc5eee065c7bd695a3e8cca27a146fed60d83e31bcedb1" + }, + { + "amount": "397", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tx": "0x4bd53c302947f35673102de237d11bcbd166de7c2c37c0c9aee8fc5960067bd5" + }, + { + "amount": "10", + "user": "0x04E8B9AF60fb22085e68d6ec4671559c4F1c95B8", + "tx": "0xa0598230e871c0b8af4d12bf93e8396484ce0147a699994a87d8a56b753736c7" + }, + { + "amount": "20", + "user": "0x1bE12ef18a63F3dbbBF3F07328E44ed31f4CCa1c", + "tx": "0x36b5b0101966dd258c68cc0b1e58f931ba530b549d462bdcae4fcdf62ffb1e5d" + }, + { + "amount": "60", + "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "tx": "0x68d64b9c329e6e29dfbba409d5b2aacd6b103c13919806c879f716fe3990ebb2" + }, + { + "amount": "50", + "user": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", + "tx": "0xab2bdd75051e5d893c3ad0dfcb4e9ec8b42857989d31fc20df2de9178f9703d7" + }, + { + "amount": "114.2226230344", + "user": "0x4cf8879dC68ebe9F003E6231CB8B704FAbEA8d9c", + "tx": "0x3a89b0faaf4d74a8b3a9a19353908c6bc53c4fe227d74ebbd6fb1120581200e2" + }, { "amount": "13.82033422112", "user": "0xb1169C6daAc76bAcaf0D8f87641Fc38fbabe569F", @@ -12520,10 +12804,17 @@ "tx": "0xf4cf2b397b085b21cbb4bc9213de71bb6fe310704e39e61b9bcb7b2b0602f2f4" } ], - "withdrawals": [], + "withdrawals": [ + { + "amount": "12", + "user": "0xBdEF6D978a33cC8E7cf06E659dEd1487953355D2", + "tranche_id": 11, + "tx": "0xbdf2776a08ad91fa5dcc5eee065c7bd695a3e8cca27a146fed60d83e31bcedb1" + } + ], "total_tokens": "12", - "withdrawn_tokens": "0", - "remaining_tokens": "12" + "withdrawn_tokens": "12", + "remaining_tokens": "0" }, { "address": "0xEED071df0b6f8C4088b9CfD9f2ADE131C8591613", @@ -12554,16 +12845,1770 @@ "user": "0x60901F5a6a66BCaD910A97e85373A00996B361f5", "tranche_id": 11, "tx": "0x056bbadf095fbbee4dc0ccac4431c998c65ad3e714a76844c71bdb0509b0ced5" + }, + { + "amount": "2", + "user": "0x60901F5a6a66BCaD910A97e85373A00996B361f5", + "tranche_id": 11, + "tx": "0x1953c94e6f8de7b448d3db802053a3e5416df00ad15044b4cf568feccaeca461" + }, + { + "amount": "2", + "user": "0x60901F5a6a66BCaD910A97e85373A00996B361f5", + "tranche_id": 11, + "tx": "0xe89e7028c10881ddb2864d28a7447c000e8db8195fe42bdb45a9a8bcd79e7b5e" + }, + { + "amount": "2", + "user": "0x60901F5a6a66BCaD910A97e85373A00996B361f5", + "tranche_id": 11, + "tx": "0x3eda46524a53e53206ce71e94d5dea72549cbfd099a0ba8cc937e35f6adc5761" + }, + { + "amount": "2", + "user": "0x60901F5a6a66BCaD910A97e85373A00996B361f5", + "tranche_id": 11, + "tx": "0xcb0d69feacca65cbccd0665cb408e6533076ce7e4bfa49166d9985c1785f1d7c" + } + ], + "withdrawals": [ + { + "amount": "22", + "user": "0x60901F5a6a66BCaD910A97e85373A00996B361f5", + "tranche_id": 11, + "tx": "0x9b0d52fc2481bbee8c3604b23701923a3e9d53ea422a92da93956e3ac120df40" + } + ], + "total_tokens": "22", + "withdrawn_tokens": "22", + "remaining_tokens": "0" + }, + { + "address": "0x4CBbb46fB3520110F82F1DDa0F5a245750C8AFcd", + "deposits": [ + { + "amount": "10", + "user": "0x4CBbb46fB3520110F82F1DDa0F5a245750C8AFcd", + "tranche_id": 11, + "tx": "0x2007cd89b0e7c29a63aebe04ffe544e14108689187ace7c7fc677d0efe01b1bf" } ], "withdrawals": [], - "total_tokens": "14", + "total_tokens": "10", "withdrawn_tokens": "0", - "remaining_tokens": "14" + "remaining_tokens": "10" + }, + { + "address": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "deposits": [ + { + "amount": "22", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x7f95c725da48e9f8c0f573b3d85f60a0be076a4ba648569692939e626ab82ddd" + }, + { + "amount": "22", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x46ebe74a6facb701a998dc734576ecfc0c9ac57596f00a53a042b1c54d36aee9" + }, + { + "amount": "22", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xf2a7107884acd060acfadc5fa90cb19218698f833df7b61d4fa7c0def8eeb109" + }, + { + "amount": "22", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xc323f680a4bdc82d6c4353ef4a09adb287fb02174e666f17d87a47b86dba4c65" + }, + { + "amount": "22", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x2c4f9bd25af8fbaffd0ae6d4fb30a3a1f0e03891167f6cacdb37909032c0ae56" + }, + { + "amount": "22", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x458a8a51e05edd48bf51a9187c4346f3a6860e170fd9405fa26c90dfe1e4ef49" + }, + { + "amount": "26", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xfd25103eb2621e9ec0496b1b56d5dacaf8ae776fae49a46ae4178832a09e1698" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x73062adf148accf1c273b3da18a9beedd78a78ee20456f3d44c32fde7466944e" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x18e2ec977bb8b60fa5a6e0dab64d4d5631c513e8fd2a245e45517175df81fc53" + }, + { + "amount": "30", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xecdb9bae7cffc1ee5ee41ae8b3300d9290639a459832f0ec3610fafa3eb91cfa" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xb50d74d962eb7170a8bca038c241720bb2e79776f20a619f1f8e98fcb770e58e" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xdeeeee8375f7aa8d4f0e227db8c0281419444326f4ee380ddb40ed0b26ec3e1c" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x7c99ca9d92494c314e96b8e7d86f91c0633365ef811c967dc8495f47fa7bd297" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x99aaa2357dc36f7c2b874c409be1e099735f3129b390e386116b1611bd34212b" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x251769a1fb77a00002948173af3179cfcbba740a04900f58f76539258390d6fc" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x8f75f8fa0abcf4b71ab67fc7439d5353cb9713c272b11ffd5d57b7a4cbb4f1fb" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x4e5965d19222e7a3990e99417564a0d3e6d1b7a6cc8b574fdd54e597d27964fb" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x660c7e2189f81e560feeb72af1d478b10fa8d7b62d108cdf0acfbda096ae751d" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xe5d3215aad54157c870f6e803671ca7c90c906227ce8938129f7b9dafce1e066" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xf8f1586508a3eeaa74e31b3362a7bc00630eff22613b794f46bc33de65e5dac7" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x33a07dcef58af1c60125531d9d0e97ab7b0374ac03c1443d1df2a4418e22a282" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x2492998be96db76abbce146918a555405cc0738595a97af4a1ef3285d5c1e406" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xada266dd423515694c52f9518a510d6f5d14582038edba25c7a250f1aa8b13dc" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x40a63e1206b2be75e1a8098b44a84e49a7e4e72d3565ace30ff1014d448e0ded" + }, + { + "amount": "35", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x2253914d54c250a8b19080f049e00c9229e59f4656cb5eff2124da3da869cc97" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x2333db36957e2356c53944f426bd666015546804964fb355de3970f4d19bb734" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xcdd6ef7826b16bc74a6bcdba377c8d36e1b5e18c75b27f4861985b64713b6297" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xa34988edcc5bd0f1f8f87c00688109277862527ee941e943bd237e4d684dbdfb" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xc5232fcde4da0548356b83fdee8ff48f369058e77c5746c993eef6a1a794e329" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x6d3a642e07d66bd26af0b48ba2ede305f5507d333d87f22a138154079cceb1ff" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xe5e3303ae61782b2c741b9b333aa4f77e8887d6307328dda21270b337d5b0092" + }, + { + "amount": "30", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xd3e34cacabf32f34c74136d6ed0126b7379f1f413ad77c9869c3445f27e1c57d" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x86c7ac257b0770540310e9807b2d69ced9ed4c8469c15118236c85306c2f0808" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xe4cae8bf5709cdd83be87fe02aa3520cf6aba8990b2c1ae5583ccb34390ee753" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xf71b7c4b15ddace009898212e6bcb73d4b57e9fe91dab5eba2d19d15d5abdd32" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x7d44d33e5b782bf700c863f460fe755f580d4abd9eff7d42adb314dcc2f83aee" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x78ac739e4f1d51e4f533f1be0f7b38faf9817fa69012a29ac9dc8be884d654ad" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x3928676c8ee9f2de58ec22efdca50d39103bdb6c1197621fcccded7fb0e50164" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x8df24c95f2ba4222faa683b902bc194614b58581fd2be8111eabfbfca7681591" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x4170faaf5362bc796acd1f4c33fe6dc17febae5d3593a8dd78a72be04661d6a5" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x5ee842864d31b79764d67b6aea83ade219480852006ab95abac7980291d16fe7" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x4b980a3a4549ddd60af8c32fdfe9a01fa56b6918699419264712a435a30982a2" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xa7f22eed2783d5fdeb25331d64f5f85ca316e70d4ac4ee7e54038d32ba607080" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xfd071be814ad04e9358364dbee1a2835ddd937c5aca499f2eaeb74df9822166b" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x14b7ae01ea7847f4e741bd261292036fe867e8512c6b25f2700f206460178fcd" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xf84d25d570191249bad2c61269774ae538f3e76b5ec161d95ee4c961e90ff8b9" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x443ef6a77455574e6377ddfb8d3413eba1ed49db7c44f3ab564e6de384102f77" + }, + { + "amount": "35", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x1dbf41005a1e07d24898e82b7aa66820e08c2cc234d094176a9b64a63a4a08fc" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x2851b735336f5c491f383f9e410a9d1bf87ce8155ae92c55ab960d9e0b51303d" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x543fd2ce3666de5f644137b06ac456c4a531cec9e8b4748fcd3d98553cc2e0d4" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xf641b6154944165c05ba948f26ea7f728019c25e635c4127894dfb716683ed4a" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x066f1145357d52a76c9604634f21d78f10579a6b806b2a1591c10ff6d23cb974" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xb216eae521a7accebcc3809b6f7d05489ae37112f768f7548e3c6c6e0654d33a" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xf6baf222b2093d8a32686b05242059752fceba81e65f4eb5ba61b5b819802901" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x7a91c290ae0286f670f682e632e8e5ddd3576068455bbfe1a3b1b6d8a58b2e00" + }, + { + "amount": "35", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xb96da71fa03bae40f466e505dc6c0f6f98403180fe4c76ddb43a95dce5956513" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x34dd700b4f6404e63befc6ff2ad31590235dfedaecc8d41227dc39f01227375c" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xa03415d15df1548dc3fd7ff5073804b9a89da020f74ff7a99e31c36c76ffa424" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x2fed6a748ac844bbb425f6e158c59c1b932b6eba11ad0d8735557bf1686ab38e" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x613b66102d63fb661bbc8866ed768fc5c97315aba32996acf6797bef1b86927a" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xcfca69e9b0418dde6a1c2f76816601f646ac1bd0bdac568d1eb788904842d2ef" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x89a22758feb31ea49a3c6fffebe6376481d23e9e79c5e555b355bc84e0ff5956" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x881ba4a766681a0067b54cbe7077bc2d6e1513741d0c6dc1061f6d58ccbccc37" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x37b29bc06bcb1b46d9ec2b968308da8c289dc6a2a064a50c9fd33b91873c0991" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xdddf61ec746ca359c59ffd3cf79d090082493009cadb1d7609099c50dd934c4d" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xabaaf75186769048d407f6f84f0252ab436797b0433a9f69ad3b747592e3cb88" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x1b43d4f80b3db8d452b393ced4d062e1426aa446e43b108bb3f573e045b43de9" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x300ae1a6dfa69fec99ed30a002bce271a19c3e4a845e3dc701c44de6d41a9486" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x56644666daa9328c23c30efded654aa0e8a5a419ae957a6c419b30b6b0e56e8e" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x5a61663a3e4ac0f6209ef639f1e14974bd79da1f39922e923aa8b7d55a23228a" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x7c226a92b554f12c08893b6bd54824dd65118f66e921d98ed69ff946c9840224" + }, + { + "amount": "35", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xef10269270a33a2422676277fc39db8a0079242cb1a211b9ebf6ac5ed4b52d39" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xb9382d8b2e0b2ebc2bab3462869ca01954a2f9888a0b4340d9882dde0c0b170b" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x98cfb662f02d1bb66bcadd77a73938fb62bed9bfe24129bd60fc593ec97619e7" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xde96e800190449dfd646b02f40c0149571ee717fb6f1c1c949be571df995def3" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xb92827e3285c733d0ddecdd630efc29dbe55536bc8770368adac028b687a510e" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xee4e83fc042545e814547168cea8d8ef00baa81a3f11517ae53798a184b8cfc1" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xaad5f1d5c09acc513054d60faa65c5ff3f677b1ea71110cbdaa0d7e70a82d1b3" + }, + { + "amount": "15", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x92b21a4f12b8f0ba2b080360cefd813e59a0381e077969d8e92069fdf02bd73c" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xe3722ebf93738e70845b32395d0fae510247cc8a47422c5a1502245af2aa6f4c" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xf1184eb4748ef0a7077fa9c904b5f2ca1a2bbf5511275f5733c63897b9b94e89" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xaa82864141782d41c3efdc9ef1eebf88638bb2f95d622739884ded6dabce48af" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x6f04647e67748be66d596795881e67ea3b75bba5dce9aef5b141debd66659367" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x561cd6c3dda8625975d58d33465078861edbc5e8e54b6e1b430c060a04726825" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x4a3c0f5cc0798f381d0155d5f66f337191da482edb3a925859a865050ffd60cd" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x6d8d009d2e891e07cc2e331ee3bc096b985c4351cb7079bbe4e38a2389d33836" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xdb7803d97430353dc7390d291b68515422d0262792328390523f1d3864a5e60d" + }, + { + "amount": "35", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x04df394a34f960aaaa8d20834ae0f67959a95cac795d481435656e1766934f29" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x7a58a413e6e1700b0b23f6fe1efec697cb9d81cc32c088b640c9b1dcef0208fc" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x3d4fc26335e99ec108594c79e335441f7dc1e5fe5d5514f3e4e16f581977a142" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xf056f81b4646fcfbf8bf1761ec6ae89fea6f29d7decf89533ed96dce541f613a" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xf05a9b8b54ab16bc32679d45f0ecd73bf37d7acda7a5d8bc68647c8522dc63c5" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x442ef49108d892ea88a80487aa78b972294402e2598530ffa24e62380c3cdef7" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xa2400c63e9f78d3ecafac4729544dd2b3ab921738ee34d8f2c4e36fbce4c84db" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xc5ce90fdd97a0be599a04682c771b2ea3e13e84e6890912cd8a701ced37c9fec" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xcf9a2d4b466d5f27b6f4adbccac28ff440fea552a7ecd71730bb8e9655fc2826" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xc69d632bf68b107e1f48b228fab2f69d35a45817b5fede690c9f85af90cad8fb" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xcf27badb78686bb44079c849e5d6d4b60f26e7819ea39a46d756a0e82901589e" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x56d1c2e52c42b9702b3fc52e45045c68a9e9363701746606dd83a1c59e8e2b4c" + }, + { + "amount": "35", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xf9a7a40c6d0cab7269338c8d2d7269757938e81e137ad77b6207041402050338" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x607b66b6b6852468f11233143f5061688f0c95a859c69f99a587f0b1e36f6fe9" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x361393aa30aa56823694ed5bd40028225b0e3449ba177a75053114aa9a2e7f15" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x1077b220b2bc407237b82b80b3a3de0bf6bc30a5f82d64217dcace430bec1245" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x628ec457c6fa3a01e91ada0f7e2b842ca0d9bcefa1d5365a2d9b4fd57e3a4e85" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xc78c41a5056f4b987d7356de418f294b2cb9bfc09e7272f14e2ba8f81b3448c1" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x0e591d7aad99439964182cb324977ad5ef6dedcebd4136af1dd8ade6bf760e62" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x9652da674d2cc7daa31998b3e6637401cc0c2b60c53bf8cf9968aa6a5becaabc" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xda8c1d350f746590ecd20e688922e1b788b91d7da28eefd975f0d2ffd739394a" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xf0fc42e15ac02582bc18598d72090fd71d2df341491af35d5364bd3711239038" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xfa763212a16ca037bc8891551d609e214843a0cdb9cec92fb8482f3b69e9cf45" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xa4ef6c3e9c7587adea300d626520917d751566f41b82721d90f54e6dd47e53f3" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x2cc183420421070edeb50da5d5a0ccda95b80900746f321f1e3d03005de37ac0" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x3857e4acd14e95e7f13c5e5140ec5f9da35741ca9c752c9d1d031edbc40b518b" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xdedafc91289d914d3e1e242dd29bac079f3d797323b4c67695036982854439f5" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x1f59cc76b1817c123069e8b1223879a9cd2ee6e6c1bd62b033283a995d7193b1" + }, + { + "amount": "15", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x50adf57cb3ed37f8b9e3a4e68d60ce4a8391e6eed4880d2051f8266a5ac62306" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x527e75e65a8e966909df9a1a68277b0e69b72171ef101b01dc9e13c8e0a6d662" + }, + { + "amount": "15", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x5f14e320a3f39f75049084147bc3bee52bfdad2769c1914688c8f1fed14c4147" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xd2c61d007c46ccf9158265e2470e56dd9b27171ca88b729d3dcce967f7d06b3e" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x070e737effa9a6fba634b7e35cda50ce442b65eaa76ea870bbda6d3dddfadb5d" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xae63d67b6e4b6fbea3dc3854a73c11c8c627a9ba5a2475ad81e78135a1d2b44a" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x8ce6d79cc8d5cf219dd1a4960ed326265b046fa4f02a60f083f410218c419f80" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x827c5e51fa739fa4841c6942078be8ac5a299068274fbaeee7812636ad1a525d" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xd95630b31e4ec5416e463793add5a6a9a84f125120577987a99825eef3920cc8" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x527e6214cfe8fd30e4cf885ac90ebb7a6bf7c50b7048de417972fb5452c8a3bd" + }, + { + "amount": "15", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x860bcea1036d81dba935a722e2c604df041463c6f60deca7a116daa478992342" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xc8c611996028952f9c61fe94b4303f7ee578b59f57e1601d73c495734e741319" + }, + { + "amount": "35", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xcbdae3fd82415ac4c1eb6f6d0cb04a793048f7b04acc44945fc37a8f9b642761" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x094e647642edaeb18994fbbd5792fcd14513ffda3210842d03539658e083e8ad" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x2e3606026d72b3432c42b15b1cb1a5fb8c570e971f62d0dd090c3fb293cc4408" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xc6bdbbaf554502ca201a780ff5c807894d0e2852140a4776caa9f446faa5b772" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x42b5cf9b619128de0dc85a581f68c62e956d738f721862d128e795cb9bc8ac77" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x38573ed58006caf497c5d1bcad3a0b18f9b10431666389fccd2ab24ed793f7dd" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x4c3f416fd16366b3be8496bbd79dc372692466670dcb6c7937e04c3ead4c9833" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x2303231152640ad9943064f1cd71baea81304e25fae97284776a7aa453c84e43" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xee1791c6a74a0a74377de98cd76eef92d5735acdd4aeff215c488065083e97d6" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x35ab3a7c826ca700a0ea1299da741802735992d9fdd4273eebade45162b735db" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xcc0b93d6543ff767d78e4bd65199f94bdfd59aca19bd532529844996871980fc" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x8e4957344ee27f9fb3b6f0afd4017b2e08c8b000fe95eaa2a709551c51c34d78" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x39b7890a45858eb60fe4ea93b93e28f4d4aee43c0beebb9cd9b772ff83923f5a" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x661a65d135ce68274bbc642e20b346324c27dd9925968ded38e395672cd81924" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x43f3c28e192489fc7f050da4a16ef8b3a9eda05dbed3c3033e98e36cdd450895" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xe8ff15ca3b21e5c90b11922c284327593c4ba1656592b7714d80970d73ff4e5c" + }, + { + "amount": "15", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x70e3cce47516bd7439142c1c9f2c53f93e69adc7e9cdc20d9cff18dfb5d1816d" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xcb4ce785faec09c6ecacabd7fb4345f73897211c89e68c3c66cccebe136d7278" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xf55d9053f3ec5ad625572cc7c3f811261cc7058b1272924dc232181eb99a1bb3" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xba0130691253e69a3b166f0a29547af94906cc913389f85474ad7f374c2fb417" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x1258ca75e9cbc13eea5af2809994bf78e070d4533f1c569cbf2e7148ae8afebc" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x6cff0fd9423db819cf6a9d592ecd3204664558febb55e77242163a2c55a7daa1" + }, + { + "amount": "15", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x33af1e6b3571cfe78d00a660d720d6bb39cee978a1f4d75920f7c74f50b22694" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x3c508e3383cf848ccf0fd4bf12b5260c975f1cd1eef065e6deab0ebba97f6b99" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x56b923ac809a83e7b67e6ba23580089ecb6f25abd3ef710f726d90cc747349ac" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xb75757fd932661f0b905899e915bff260753c40ffb5408cef08d75f51d4f28e1" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x7c3564e27d132c70194b8d1d33c896d2325139588d1026c94c9a5cbd8c9e1e71" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xa17ce5b94046aba9dd51555867ae276fde730e687040fabca6c1b5b967394d03" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x7e9c411910c33a3be1254c34daffc189df20b5724888e9d0bfbdc1f9e68843a7" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xc65c8bf05f0f9e9184bcf3ae677070699fd9ace04b04eb925834e498661f2a19" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xde1176a4e26be06a5f2c70585ccf317f7699f42e436ae5e880e0a547e20a7be2" + }, + { + "amount": "15", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x34c9742ab221566f4dc6b3c4b7a04d9a8e7bc574a4942afe8bb4c8535c124816" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x5b4f288458b8ff543e915b172f239800e9044b4e07258adf2acc1c04aec854f0" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x81413602c0757cb722d11a61e071abba83791f73cf34a52f2d37b52c4a1439b8" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xab23a94bb2c25f83d121c14c1098e1cf483a574aecc3e93bbb476020897cfb77" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x2ec724c6289b9f3f27c66a0431f6cf3e24bf5430a3e611f07e11bc9d4ba564a0" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x8d544a3f3da4118c02958ddceec05bfaf117eebbe0cdefb576771383bfb448ca" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x81404d7b286f4d85b3a9f473a639b7572421418c8bd8097ec618385ffa557321" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x7b84f821313e0fc27c5f0c5088a5fe24dc0be41387e1ed5b4df825b8ffc874b3" + }, + { + "amount": "20", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x762724cb97615abf237341f790e25a4f30d17016ed128986d64218df6c38ba40" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x93412a89ebc310858223f29f18a8be283e5b541e08a634b433165edf3777fd1c" + }, + { + "amount": "75", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x1b29c010823ce06164eb3f21e437d3ce22982e25cfdc63d935f3d4932b64a754" + }, + { + "amount": "25", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x50bdd0492e31f1ac0af0d3e95035b431aafd9effe528ae9f0c57eb98498adef9" + }, + { + "amount": "10", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x6e3a6b0599c66d8197cfe4fcacaaae2bdc7ecdcf5f62938c3316609d65de5667" + }, + { + "amount": "5", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x25b15c6f25082d63bd5ea0838dd835006ebaee339315e277b638e023e5ff6cf1" + }, + { + "amount": "2", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xd5947eb1f6aca62cd34eaee000f7b0508530096a2aaf6b1b83a78485b8600aeb" + } + ], + "withdrawals": [ + { + "amount": "158", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x35f51342e5a5e58491c7ad833cf4cdc15460d9c5b3c80d7fca3a5a42120e197b" + }, + { + "amount": "1306", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xc5d6c39fca0bcf5b64555260e8d56da6ed8f2cf790a2b9342bed6d65731d363d" + }, + { + "amount": "1351", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0xa645398299934c4ea759f1573d7ae13028fcd8da9a831ac338a112b7925e4a01" + }, + { + "amount": "810", + "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", + "tranche_id": 11, + "tx": "0x26f83e1b57a646b5266f07b00f13f47d3983978d96e921349b24a8b2df0fbc3d" + } + ], + "total_tokens": "3625", + "withdrawn_tokens": "3625", + "remaining_tokens": "0" + }, + { + "address": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "deposits": [ + { + "amount": "125", + "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "tranche_id": 11, + "tx": "0x281c5bc02dcb6595f0b5f2f534fa0077ef4f6907aee78086f001716b1405225a" + }, + { + "amount": "26", + "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "tranche_id": 11, + "tx": "0x77b92dd495c35af26ed6067d0faa589578670b9702fac97ff2a00c501c217509" + }, + { + "amount": "40", + "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "tranche_id": 11, + "tx": "0x8d9c17dd471a693de2f3e476ee23e4ea7502af36532f69c5b23f8d10fca3c58a" + }, + { + "amount": "30", + "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "tranche_id": 11, + "tx": "0x72463ae65aef04aac7a3b543bfc97a962cc635fdb97cc082bdc4fa084bfe7c0a" + }, + { + "amount": "20", + "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "tranche_id": 11, + "tx": "0x11b0c42c9f7c3667f268bdaa8dd88e0a0d0492ea28f8e3f7e0a96306c1f5922f" + }, + { + "amount": "10", + "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "tranche_id": 11, + "tx": "0xaa83567655e3e11480614db4d90303ff4ca8aaf1509b36cca6e8153f85365ccc" + } + ], + "withdrawals": [ + { + "amount": "153.738397388", + "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "tranche_id": 11, + "tx": "0x2799670258465a9c65fc610f1a04b5a8294ad6ac296759d75b261d5ff3b993a6" + }, + { + "amount": "97.261602612", + "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "tranche_id": 11, + "tx": "0x30000e5c392b58add351eed401823062ae39212ba6597862133cc15d95f284e2" + } + ], + "total_tokens": "251", + "withdrawn_tokens": "251", + "remaining_tokens": "0" + }, + { + "address": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "deposits": [ + { + "amount": "100", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x407a4cabfde7c0fa883be394634783e272818e95a665ec066fe4928e7ec3477b" + }, + { + "amount": "90", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xb702256adf88ba04c8475cf189576d5dc80ab63cd8bd2a00cde41891541f88e9" + }, + { + "amount": "26", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x48af7bf7089977ea0e830f31ebe6082d0c1206787ce6eaec94d14815daeaee7a" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x226c1935e8f4bad435d6d198d760df17a4f951381dce3d0dd82570235d4a0c3d" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x5c2458ac46ff62928a13d9d7f842a6f90f020f7f166d0ee9d1c1bf8fcf88b050" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xa0cea30b0f6de376b3a57a37a00b8cf558ed47de07493a0719e6d6edb3a94e5e" + }, + { + "amount": "30", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x4cbd4310c6c43325be4607de07f98e0d118c4d2eafcd334ae30a150c2ae6b20f" + }, + { + "amount": "30", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x99520cbadeaf60a7b271d1541e7158d3f3fe2f27b6d7cd3a3992a9c2a1cf9fe3" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xb759a4000f5069a73093325fe6f1fc0a6d0fcda2801483223b319a0e7e3729a4" + }, + { + "amount": "46", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xfe63acb6fd6d5809cb7a4a1dd7dc24c739a615cbf1cbe8f803c97d8b188c9636" + }, + { + "amount": "30", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xf01d8626ab9fcd08f70525b1a02c506674131f987582595a6c91b2ed748274bf" + }, + { + "amount": "40", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x4f66aee35358a4fa38c5ea1364902a24147e8e7a24994c63d39fa11395723791" + }, + { + "amount": "15", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xe0d5494a3c6bbdc421a4829d9013563142a9678f43bfbe51c3434a94aad4124d" + }, + { + "amount": "40", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x496cd201528b9a9b804d84dc15f88d636e9e45a9c1384e3041776fdbb3c16d5d" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x94b8fa39786b3c9517d2d6c816062339607c442710590ec478ae3ba388924452" + }, + { + "amount": "40", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xe4e183e882a95af6df31421661e180fe3410b8067eadf55c77f6986e511da7ac" + }, + { + "amount": "15", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xf091961dcd46a7b6ef0a14af0d87a0a356938c4380b2109b1108ed2b07b55f45" + }, + { + "amount": "40", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x84b6c760e76d2a4c95caf4db66c6acb8a932edce82a0b95f142acfa9cb86075c" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x4afa5e45ae1eeb4078aa643d79854f9efa7dd009dd014ee0d371d9d01ec6cbc8" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xb2db70393614adccdafaf8df2d39fc7d5a2498944f91711ce53f58c65a818f03" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xb3e3cc7ff74f658991fc2cba707aeebaa580f310bec28b4d3956fb98fe0e988f" + }, + { + "amount": "40", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xfd7083a71ba5659fb7571fdd92f890e312ee30d7643953d8ffaa0737930f4c3c" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xe9fb0dc041c062736fb5b5fe8209aac1bfe023f8c5cf715e44e5a712c5be77b7" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x237803fda73cce9c77fc4d9d63a59cb8025d9d654fcdba49c5d88beea88a46fa" + }, + { + "amount": "15", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x4d8326dae1df42b41d412b0fa3cccc2cc47dd277e80243b86f0925978254836c" + }, + { + "amount": "15", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xc1a397e778046613f2a8164f68d626c4f0ec9d5423ef9c0dd30494ad66982437" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x2580460844cb953b4bb142f33d2500fec7b0a8325b5bd70fd53e5c35b3a08192" + }, + { + "amount": "15", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x477299222cbc0a050646b563cfd2ec5edd0302180e2fa2d004b36968508bdb22" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x7f0d36669d3c28ac5dd0f6fcd5718fe1a8ea88514f8fd3d819c59647dc314666" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xffe4ae006c6403c0b0fce3398f866d250ddc8bec8dc8f0f5ccb1dd109e386dfe" + }, + { + "amount": "15", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xd4e892131fc3e43117064e05553d54653d81f1811e8699f055441d64e0b7ce0b" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xdf7de66bfec5e28b68f174909c24d49277ffb3be4bb68a7de9949870a59310d0" + }, + { + "amount": "15", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x3c8fe9da528947fd4589240c9de5e909db173a3937a6a436ff7339457b8899ba" + }, + { + "amount": "15", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xf935e3ae522d922e6e13ed17177ea7f9708b75cad1e69f483310013151738c37" + }, + { + "amount": "15", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x110a7a7487a984a3493ef2c5dc15e2bbe95224b2ced04219a3e18114ba43634b" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x683a025526728d8eb397a9fa0bab7abf74c3c949804f7336b59bea46ceba73d7" + }, + { + "amount": "15", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x2f783dc0b4e81b587733a1c505c4c3cd5d168133dca0f5168f434028b2f944bd" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xe0e4145ac55d1c7f1b37421731791da42de08825f3c2382758624b01395e0def" + }, + { + "amount": "20", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xa4ad240ff59f25b6edc238e8d19d34e0ae65f1f15e4e5d5154f1071675adaf98" + }, + { + "amount": "5", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x9df742e299afff5b5eb3d0fd179c9db6e648c269a6edb9c1033e05462b3ba292" + }, + { + "amount": "5", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x2b9cd8ead93b5a149fddbd2bb5e1f579ee4474bde184325a89bb0c5c080c1af0" + }, + { + "amount": "5", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x943c4967d8ebfb69c1c3f3497a1ea0e450d0d1904747a9a79829afa959e1cab8" + }, + { + "amount": "5", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x0ca66c9ddfaf5a899c9b997eabd146fd4b07c134c793788c64fe81c1997c2626" + }, + { + "amount": "5", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xc95341c990a6ba671bb4944625fb04d41ad50c84687b96a53d76fd484491d623" + }, + { + "amount": "5", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x67d7b4eeaaea0aa8a396976fcf5c3281c8f90acb4cecf42f57978efb8e157520" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x0a84e6a1c9754a2d65f492560cae5acf7e4beeda9174aa0950cc1682f2e7ffdc" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xe3245777a34a71592ca3fd8a6abee146aff052b5ab0d71473b29088dcd4d184a" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x825196807104a70a8217c2af072accb1ef6fec878aa6074f9b566173fc529bb9" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x9407e2cddecf345873cf85c94467ac254542ca23971ed617e6ba9684d5fcbd55" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x08f5ea3a2d48a609ab196a732d9c146551265a98b4060495dcca98bf5fa943c5" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xa1f121eb6e1cdbaf169192e49c20f78976bbdc4dce6c0c2d505b6e88694e384a" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xfe179715f750cfc7ea2e5b024ba9d1038d560496f949796d33dc3d952a68d0c4" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x9ff3d87318031ea5ef24d4d015dd47fffa08aac382fdb298026aa7f4df790ce8" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x38ee19966c2313a0d3ed1cb4d9a3fb1f8e6b3fc4f259d91452d78c1da375792e" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x24156f35ad0391f26b8c6b7061f873b9d30e7c0aee18aaaade2f7bdc7c494338" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x264397be808b9781fc202132c016e975184afd6128f37245a6d72e5f59f2ad49" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x4a9b8b1a927616c03c9cb652cf8f6c612d8d1d119a5c48040843446d64665b5e" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x52139a9d6c010881398bf92a3a498a18da757de5a274cfea6b3c886d6db5ddba" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x6fefbdd2634fa6def9b620d81f87349fe14362f622829dab57bc43157e996beb" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xf747d4e2239462904e923313f7408633ee48cd55f02b11e21edfec59e1fe8de7" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x500467ef5f4a81bb2c21bb5001a24559a0398613b185aacb3289418387456d20" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x00a6e3dca9b5db3b2d45218849aa1ef3767755d8f2f998cc8b66796872445c0a" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x21fee2e07cfdd55225e58189302e4cb4e20a6131a7e728544dc374fcda7bb108" + }, + { + "amount": "10", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0x525647388b525dd83c7ca890274e4fbc1e5d3cf810697a4086e9e2ae47e82ed9" + }, + { + "amount": "12", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xb7a32e6bc2468401f395b36e128fe4eed1ab9cb14646473333163d07a3bf8030" + } + ], + "withdrawals": [ + { + "amount": "1228", + "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", + "tranche_id": 11, + "tx": "0xa22c86ed3e907214b5e3563d6b08dfc7df8d4df001cf277751e331f8f096c0d1" + } + ], + "total_tokens": "1274", + "withdrawn_tokens": "1228", + "remaining_tokens": "46" + }, + { + "address": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "deposits": [ + { + "amount": "50", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x95d890ef632871e5dd6ffc406c74007d6894c99167f36ea26d988ac37d1dcfe6" + }, + { + "amount": "20", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x1a84c2a2c8a1a632dc9fb457248bf0a3c2e44f73a04cb0a80b40977a23542306" + }, + { + "amount": "40", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0xe49b1ee099389adffb1a340ab3f3b74084050cbfa9267d025b49d49d43669334" + }, + { + "amount": "15", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0xae557f8b2505150252c98b7e394bbb5705b71676ec8644b555f1752ad663a895" + }, + { + "amount": "250", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x011522488ff11ba340565ee830161fbc03cda973574deab54d1159704888c79a" + }, + { + "amount": "30", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0xaf5fc55f19e4bc29d5454750855da4c51296593bc5da6df4bafed5c6e1823a6e" + }, + { + "amount": "25", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0xeae47c77ed5a6f4cb1538e8402fe83517a4956f07ee985a665d706757bf01a11" + }, + { + "amount": "20", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x5eccf703f02deea6dc92847762f503f1c59f68476be8062fa70595a8d64d969e" + }, + { + "amount": "15", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x8671536f2fd7e764f6c7c92ad561f1fc1ae906f24bf392b9d9a95cdfeb2096bb" + }, + { + "amount": "120", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x0ae396dacbc0efc8e2e7c31827ad1456eed62cf06c312d63701aadbab2316ec7" + }, + { + "amount": "30", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x103890b7f9fc2ad044864686028cb191bddbfe5a155ae65d96f59308691c199d" + }, + { + "amount": "10", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x2000817a4845c12f21c28a2bb452f39414cbe2c55bc686b71ef80a7c31d7ca94" + }, + { + "amount": "10", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0xdfe068402a81d11c101ee284eed433db9a18505a88357bc257f6e9833b624b5b" + }, + { + "amount": "20", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x623f6e5736c8260a2ca49afee677f679a2c112523d8cb2ddd6a20b6c5ba0c97c" + }, + { + "amount": "25", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0xa1feec1dd56b55af8460d9ec002ff46d3ee6e4b32744ae2078f2838edf62fdf8" + }, + { + "amount": "5", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x39f024eaf52550bb1c6ba6431caf60e5f8c3edea6c880f438dd6dea5fd540920" + }, + { + "amount": "50", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0xc5c9a3b67c4bcb95735e5d36cdf303573a989ed2eafe23ef7edb37bc04ecc357" + }, + { + "amount": "100", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0xc7661c9c1805e0dad46edff389cf83abd7fbba6e2a58fd1d259647663a781065" + }, + { + "amount": "100", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x9726a9d61afa5c127adf249cb19ae02cdb7943d2d9512c86c13ae0f9e6542fcc" + }, + { + "amount": "110", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0xf6e38121c7a20c00990bc960094078ffaf8c3196aeeecf4280ca6ce111f9c817" + }, + { + "amount": "35", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x9241d7e23f47e6d1cc72692b3f7b31f13d580a34dda34fd9ca427511f3e5aafd" + }, + { + "amount": "75", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0xaa558c5f1739831998e2698e561a36314dfc07e4aec804f44aa24158d950179c" + }, + { + "amount": "25", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0xb455de12da921d20c19e0f30480dec62ca16880477f2667557432a1a1786966d" + }, + { + "amount": "5", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x1dbbc8c55e6b64081b2336251d1ab30886e0446a885ee7b2fa981897e94a0f6c" + } + ], + "withdrawals": [ + { + "amount": "682.157613525", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x2074263108f1bc47540dc64e04f9c839ae1245ba94fa393c958564d2c07c2e7b" + }, + { + "amount": "452.842386475", + "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", + "tranche_id": 11, + "tx": "0x61c0a4966bbd17963420f02d0eb42444174371ef7d8fae1f2c6fc3e87e26c7c5" + } + ], + "total_tokens": "1185", + "withdrawn_tokens": "1135", + "remaining_tokens": "50" }, { "address": "0xb4eE687f019A8e48F7087f4b4f8653208B8cc48f", "deposits": [ + { + "amount": "80", + "user": "0xb4eE687f019A8e48F7087f4b4f8653208B8cc48f", + "tranche_id": 11, + "tx": "0xe7af0e0a5c7c87fb16acf2ee5c040d9630e9817ead76266fbcdef9b6b4ae380f" + }, { "amount": "15", "user": "0xb4eE687f019A8e48F7087f4b4f8653208B8cc48f", @@ -12920,52 +14965,77 @@ } ], "withdrawals": [], - "total_tokens": "1610", + "total_tokens": "1690", "withdrawn_tokens": "0", - "remaining_tokens": "1610" + "remaining_tokens": "1690" }, { - "address": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", + "address": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", "deposits": [ { - "amount": "10", - "user": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", + "amount": "125", + "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", "tranche_id": 11, - "tx": "0x02083dbcb9da76fb52c1a5bf98e3231e1f186e7e8f5939d9fd5dd4008baf883a" + "tx": "0x52bc186e955219235458e0cbf11cd2f13bc4daa5202ca370b3f72ee3734bfccd" + }, + { + "amount": "25", + "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", + "tranche_id": 11, + "tx": "0x27c8050adbae4ce01049dc7dd2fcc8d738a823582663f4d98d306334f8167263" + }, + { + "amount": "100", + "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", + "tranche_id": 11, + "tx": "0x104429d0776629485f99b806f7c76f0379956547c946d464989193515a1a03ba" + }, + { + "amount": "20", + "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", + "tranche_id": 11, + "tx": "0x19833fb0b0ad85ab8a3e84abd932b955116f99d7f0ed1c505761cb07b2b45661" }, { "amount": "10", - "user": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", + "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", "tranche_id": 11, - "tx": "0x555facafed895e22d1ff4a9ef47cefe4702c8334dc9e18ffa6b2a3c03f4c99aa" + "tx": "0x4926858faf0eb6ed1f6f58d48c63794ab6dfbf6dabb0d652a8a9bab517bd7b61" }, { - "amount": "10", - "user": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", + "amount": "2", + "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", "tranche_id": 11, - "tx": "0x97dd91d8d10af081944b5572f71ada2b2b121de878c6b45ecdd0068a1972c351" - }, - { - "amount": "10", - "user": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", - "tranche_id": 11, - "tx": "0xc0b9a36bedc89ace342c87a448cbe0042a6f97c614947f584d7e473690c8c7c8" - }, - { - "amount": "10", - "user": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", - "tranche_id": 11, - "tx": "0x5c91e2aec3cd955e01f88b575e88d43fc10e3d132c2de4e04d0d8a3efe9aac7e" + "tx": "0xd8fb387a63f4c66e0745787c5468f08bb8321b284ee8275ab961a52b51726381" } ], - "withdrawals": [], - "total_tokens": "50", - "withdrawn_tokens": "0", - "remaining_tokens": "50" + "withdrawals": [ + { + "amount": "282", + "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", + "tranche_id": 11, + "tx": "0xe1683288de3b780af3ed5de2a0c101c12f01ca827205f933289126cf20839abd" + } + ], + "total_tokens": "282", + "withdrawn_tokens": "282", + "remaining_tokens": "0" }, { "address": "0xBF8C00ee066421c2c6daE50835c2a7AD939db752", "deposits": [ + { + "amount": "100", + "user": "0xBF8C00ee066421c2c6daE50835c2a7AD939db752", + "tranche_id": 11, + "tx": "0x1852b187bf2d5bd749d662f7a8482961f1a52edd9c8f185b044c2c0b5d6bb4fa" + }, + { + "amount": "30", + "user": "0xBF8C00ee066421c2c6daE50835c2a7AD939db752", + "tranche_id": 11, + "tx": "0x1db2c2623d19a606509363fc642bf5c1e3084ebdc4d1fc2271b54df503a3ddda" + }, { "amount": "20", "user": "0xBF8C00ee066421c2c6daE50835c2a7AD939db752", @@ -14282,9 +16352,295 @@ } ], "withdrawals": [], - "total_tokens": "7285", + "total_tokens": "7415", "withdrawn_tokens": "0", - "remaining_tokens": "7285" + "remaining_tokens": "7415" + }, + { + "address": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "deposits": [ + { + "amount": "20", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0xb082adf1e0b96051e02cdb0c3ea48959deee55818816a641cc37f2d3f531c8ce" + }, + { + "amount": "22", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0xe1d512f7d9944318ba9bb3dd423a4c21a37d5e2eac9c2f3583082d42d882ae53" + }, + { + "amount": "20", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0x8c773b8d3d0c358b1a2cde70e55ee8fc024925cbaba27610aa8cda7a3f0982df" + }, + { + "amount": "15", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0x93b6c140ed9ccbe239ca264efe86e654a05a5c2e876081e19ef48f27efa20566" + }, + { + "amount": "30", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0xbf318e3045181fef7f383715c95294d2075b2248639fa8e91850df308226ddf9" + }, + { + "amount": "15", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0xdee069f58e8882a7ea7a871935a13776cf058270743bf966865aeaffaa54145c" + }, + { + "amount": "30", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0x9aea68533d70197adfaffed4b4ae6218c5d4cb6058f870c000daec5b45df45fd" + }, + { + "amount": "25", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0xcb7861047734897ebe61e006f38cf5e436af5272a475dd81e679afa78cd07f43" + }, + { + "amount": "20", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0xa6653d40b68d11904f9b987f2180874ebc883be8d8e004594b931129901fb5a8" + }, + { + "amount": "20", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0x3c1d2bf578de370871d3776b08f32bced321444257cbd89fcaf708653571cc78" + }, + { + "amount": "15", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0xb7f2c199013aeb3da684f38dceaa5054d3085b8feb90e7a8f7fd3d3e20b880d5" + }, + { + "amount": "25", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0xe1fa8d091699179c71b4ef4e76bd337e931cb28c2a456d0ea5f219ed19dc63b7" + }, + { + "amount": "5", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0x1cd33976d2a4fc7c76374e7d06f39d89caa89e1f767b0859810b7bbf175a9fb4" + }, + { + "amount": "25", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0x0cdc4ee13aa611e1a74c79a3aef1b79cbf517854e235934d374f9cb68e67fa2b" + }, + { + "amount": "20", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0x0eb37f439747689608842d55e49f983493b80dd7cf8f97e4f4474db2700d6901" + }, + { + "amount": "10", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0x5c379decccb82b0c9ce95bf8543efacddac6f4e082ffa04e4710ed2853ac67b4" + }, + { + "amount": "50", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0x1c253a531589d88b880927ddfd620ba1c60e946109c180e271db4b356ef9e11a" + }, + { + "amount": "25", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0x66a9e658ba6876af29de406083ad78ab4ff677e060565f6b81098470df1f96b3" + }, + { + "amount": "5", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0xd6cd5fbddd1c4edd295bbb7fa989f6a7c65571a5bb95b01bcdd9940335dd4261" + } + ], + "withdrawals": [ + { + "amount": "397", + "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", + "tranche_id": 11, + "tx": "0x4bd53c302947f35673102de237d11bcbd166de7c2c37c0c9aee8fc5960067bd5" + } + ], + "total_tokens": "397", + "withdrawn_tokens": "397", + "remaining_tokens": "0" + }, + { + "address": "0xb4143fBD0584c02F025045298E1411dd41aa7997", + "deposits": [ + { + "amount": "20", + "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", + "tranche_id": 11, + "tx": "0x4cd4c6272592dcf1757b7c297f75c372de8bd3b21e74aa3b86525fb6b9d042b0" + }, + { + "amount": "30", + "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", + "tranche_id": 11, + "tx": "0x487fd52ffd49afe768c9345d18407e351d64c7586d38f0b49f57d50e3022d765" + }, + { + "amount": "20", + "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", + "tranche_id": 11, + "tx": "0xddcb15e5e00f027d7cb8acd18f7288c039da483fb454dcbc615ec1f742be9fbc" + }, + { + "amount": "25", + "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", + "tranche_id": 11, + "tx": "0x739419449bb4de20119cdf1b53cfd3556417331f39f93d4d8624f9ca27ead61d" + }, + { + "amount": "10", + "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", + "tranche_id": 11, + "tx": "0x0a66911838ddeac867658d71869dc820177f91c9038a2f980dc17485fbc375d2" + }, + { + "amount": "10", + "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", + "tranche_id": 11, + "tx": "0x239d62567f82e049eb84edb68936925da4677d31bde2844080e3b3c31c57e0f3" + }, + { + "amount": "15", + "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", + "tranche_id": 11, + "tx": "0x18f75cba0ac3dbda760bb5f87245b5fba570b6cbc01eba9d92c43472f024f5d9" + } + ], + "withdrawals": [ + { + "amount": "104.9841067341", + "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", + "tranche_id": 11, + "tx": "0x61a08da77e9cee8c282eb0120a7d42ab8101ee180d8c44b4adc19d463d0f4c71" + } + ], + "total_tokens": "130", + "withdrawn_tokens": "104.9841067341", + "remaining_tokens": "25.0158932659" + }, + { + "address": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "deposits": [ + { + "amount": "10", + "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "tranche_id": 11, + "tx": "0x36815473d11747ecd8141238de6e1c4a6bd9668386e49690021fcc4dfaaeec01" + }, + { + "amount": "10", + "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "tranche_id": 11, + "tx": "0x9ff1db5dd580c99848566e8707b70f5b2fa500e9e25251e63d1ca8980c8cfd90" + }, + { + "amount": "10", + "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "tranche_id": 11, + "tx": "0x81d46a9312db19aebe49f140a6be6188a2d52153da0799b6127f18760abde412" + }, + { + "amount": "10", + "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "tranche_id": 11, + "tx": "0xb8adbe8809c1fba698e91947eca4935a0aa51109b9b3b13e6a57fa0bfa86a47d" + }, + { + "amount": "10", + "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "tranche_id": 11, + "tx": "0x2b3d71399f5e657947392a355f9e74e9516fd13430d283e6d5baf6994cc06535" + }, + { + "amount": "10", + "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "tranche_id": 11, + "tx": "0xce0d84e4f939f534a8a3ddcfe77c6b01d76504a5e199e086528a0939168a999d" + } + ], + "withdrawals": [ + { + "amount": "60", + "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "tranche_id": 11, + "tx": "0x68d64b9c329e6e29dfbba409d5b2aacd6b103c13919806c879f716fe3990ebb2" + } + ], + "total_tokens": "60", + "withdrawn_tokens": "60", + "remaining_tokens": "0" + }, + { + "address": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", + "deposits": [ + { + "amount": "10", + "user": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", + "tranche_id": 11, + "tx": "0x02083dbcb9da76fb52c1a5bf98e3231e1f186e7e8f5939d9fd5dd4008baf883a" + }, + { + "amount": "10", + "user": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", + "tranche_id": 11, + "tx": "0x555facafed895e22d1ff4a9ef47cefe4702c8334dc9e18ffa6b2a3c03f4c99aa" + }, + { + "amount": "10", + "user": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", + "tranche_id": 11, + "tx": "0x97dd91d8d10af081944b5572f71ada2b2b121de878c6b45ecdd0068a1972c351" + }, + { + "amount": "10", + "user": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", + "tranche_id": 11, + "tx": "0xc0b9a36bedc89ace342c87a448cbe0042a6f97c614947f584d7e473690c8c7c8" + }, + { + "amount": "10", + "user": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", + "tranche_id": 11, + "tx": "0x5c91e2aec3cd955e01f88b575e88d43fc10e3d132c2de4e04d0d8a3efe9aac7e" + } + ], + "withdrawals": [ + { + "amount": "50", + "user": "0xBaC8fbf56Af825fEab8edE515943405f46E89B42", + "tranche_id": 11, + "tx": "0xab2bdd75051e5d893c3ad0dfcb4e9ec8b42857989d31fc20df2de9178f9703d7" + } + ], + "total_tokens": "50", + "withdrawn_tokens": "50", + "remaining_tokens": "0" }, { "address": "0x4eF20eeb22B72149487840FfB8ED66706959eE03", @@ -14980,1030 +17336,6 @@ "withdrawn_tokens": "122", "remaining_tokens": "0" }, - { - "address": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "deposits": [ - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x73062adf148accf1c273b3da18a9beedd78a78ee20456f3d44c32fde7466944e" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x18e2ec977bb8b60fa5a6e0dab64d4d5631c513e8fd2a245e45517175df81fc53" - }, - { - "amount": "30", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xecdb9bae7cffc1ee5ee41ae8b3300d9290639a459832f0ec3610fafa3eb91cfa" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xb50d74d962eb7170a8bca038c241720bb2e79776f20a619f1f8e98fcb770e58e" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xdeeeee8375f7aa8d4f0e227db8c0281419444326f4ee380ddb40ed0b26ec3e1c" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x7c99ca9d92494c314e96b8e7d86f91c0633365ef811c967dc8495f47fa7bd297" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x99aaa2357dc36f7c2b874c409be1e099735f3129b390e386116b1611bd34212b" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x251769a1fb77a00002948173af3179cfcbba740a04900f58f76539258390d6fc" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x8f75f8fa0abcf4b71ab67fc7439d5353cb9713c272b11ffd5d57b7a4cbb4f1fb" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x4e5965d19222e7a3990e99417564a0d3e6d1b7a6cc8b574fdd54e597d27964fb" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x660c7e2189f81e560feeb72af1d478b10fa8d7b62d108cdf0acfbda096ae751d" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xe5d3215aad54157c870f6e803671ca7c90c906227ce8938129f7b9dafce1e066" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xf8f1586508a3eeaa74e31b3362a7bc00630eff22613b794f46bc33de65e5dac7" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x33a07dcef58af1c60125531d9d0e97ab7b0374ac03c1443d1df2a4418e22a282" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x2492998be96db76abbce146918a555405cc0738595a97af4a1ef3285d5c1e406" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xada266dd423515694c52f9518a510d6f5d14582038edba25c7a250f1aa8b13dc" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x40a63e1206b2be75e1a8098b44a84e49a7e4e72d3565ace30ff1014d448e0ded" - }, - { - "amount": "35", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x2253914d54c250a8b19080f049e00c9229e59f4656cb5eff2124da3da869cc97" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x2333db36957e2356c53944f426bd666015546804964fb355de3970f4d19bb734" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xcdd6ef7826b16bc74a6bcdba377c8d36e1b5e18c75b27f4861985b64713b6297" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xa34988edcc5bd0f1f8f87c00688109277862527ee941e943bd237e4d684dbdfb" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xc5232fcde4da0548356b83fdee8ff48f369058e77c5746c993eef6a1a794e329" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x6d3a642e07d66bd26af0b48ba2ede305f5507d333d87f22a138154079cceb1ff" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xe5e3303ae61782b2c741b9b333aa4f77e8887d6307328dda21270b337d5b0092" - }, - { - "amount": "30", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xd3e34cacabf32f34c74136d6ed0126b7379f1f413ad77c9869c3445f27e1c57d" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x86c7ac257b0770540310e9807b2d69ced9ed4c8469c15118236c85306c2f0808" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xe4cae8bf5709cdd83be87fe02aa3520cf6aba8990b2c1ae5583ccb34390ee753" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xf71b7c4b15ddace009898212e6bcb73d4b57e9fe91dab5eba2d19d15d5abdd32" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x7d44d33e5b782bf700c863f460fe755f580d4abd9eff7d42adb314dcc2f83aee" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x78ac739e4f1d51e4f533f1be0f7b38faf9817fa69012a29ac9dc8be884d654ad" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x3928676c8ee9f2de58ec22efdca50d39103bdb6c1197621fcccded7fb0e50164" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x8df24c95f2ba4222faa683b902bc194614b58581fd2be8111eabfbfca7681591" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x4170faaf5362bc796acd1f4c33fe6dc17febae5d3593a8dd78a72be04661d6a5" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x5ee842864d31b79764d67b6aea83ade219480852006ab95abac7980291d16fe7" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x4b980a3a4549ddd60af8c32fdfe9a01fa56b6918699419264712a435a30982a2" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xa7f22eed2783d5fdeb25331d64f5f85ca316e70d4ac4ee7e54038d32ba607080" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xfd071be814ad04e9358364dbee1a2835ddd937c5aca499f2eaeb74df9822166b" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x14b7ae01ea7847f4e741bd261292036fe867e8512c6b25f2700f206460178fcd" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xf84d25d570191249bad2c61269774ae538f3e76b5ec161d95ee4c961e90ff8b9" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x443ef6a77455574e6377ddfb8d3413eba1ed49db7c44f3ab564e6de384102f77" - }, - { - "amount": "35", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x1dbf41005a1e07d24898e82b7aa66820e08c2cc234d094176a9b64a63a4a08fc" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x2851b735336f5c491f383f9e410a9d1bf87ce8155ae92c55ab960d9e0b51303d" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x543fd2ce3666de5f644137b06ac456c4a531cec9e8b4748fcd3d98553cc2e0d4" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xf641b6154944165c05ba948f26ea7f728019c25e635c4127894dfb716683ed4a" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x066f1145357d52a76c9604634f21d78f10579a6b806b2a1591c10ff6d23cb974" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xb216eae521a7accebcc3809b6f7d05489ae37112f768f7548e3c6c6e0654d33a" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xf6baf222b2093d8a32686b05242059752fceba81e65f4eb5ba61b5b819802901" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x7a91c290ae0286f670f682e632e8e5ddd3576068455bbfe1a3b1b6d8a58b2e00" - }, - { - "amount": "35", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xb96da71fa03bae40f466e505dc6c0f6f98403180fe4c76ddb43a95dce5956513" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x34dd700b4f6404e63befc6ff2ad31590235dfedaecc8d41227dc39f01227375c" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xa03415d15df1548dc3fd7ff5073804b9a89da020f74ff7a99e31c36c76ffa424" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x2fed6a748ac844bbb425f6e158c59c1b932b6eba11ad0d8735557bf1686ab38e" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x613b66102d63fb661bbc8866ed768fc5c97315aba32996acf6797bef1b86927a" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xcfca69e9b0418dde6a1c2f76816601f646ac1bd0bdac568d1eb788904842d2ef" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x89a22758feb31ea49a3c6fffebe6376481d23e9e79c5e555b355bc84e0ff5956" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x881ba4a766681a0067b54cbe7077bc2d6e1513741d0c6dc1061f6d58ccbccc37" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x37b29bc06bcb1b46d9ec2b968308da8c289dc6a2a064a50c9fd33b91873c0991" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xdddf61ec746ca359c59ffd3cf79d090082493009cadb1d7609099c50dd934c4d" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xabaaf75186769048d407f6f84f0252ab436797b0433a9f69ad3b747592e3cb88" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x1b43d4f80b3db8d452b393ced4d062e1426aa446e43b108bb3f573e045b43de9" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x300ae1a6dfa69fec99ed30a002bce271a19c3e4a845e3dc701c44de6d41a9486" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x56644666daa9328c23c30efded654aa0e8a5a419ae957a6c419b30b6b0e56e8e" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x5a61663a3e4ac0f6209ef639f1e14974bd79da1f39922e923aa8b7d55a23228a" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x7c226a92b554f12c08893b6bd54824dd65118f66e921d98ed69ff946c9840224" - }, - { - "amount": "35", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xef10269270a33a2422676277fc39db8a0079242cb1a211b9ebf6ac5ed4b52d39" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xb9382d8b2e0b2ebc2bab3462869ca01954a2f9888a0b4340d9882dde0c0b170b" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x98cfb662f02d1bb66bcadd77a73938fb62bed9bfe24129bd60fc593ec97619e7" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xde96e800190449dfd646b02f40c0149571ee717fb6f1c1c949be571df995def3" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xb92827e3285c733d0ddecdd630efc29dbe55536bc8770368adac028b687a510e" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xee4e83fc042545e814547168cea8d8ef00baa81a3f11517ae53798a184b8cfc1" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xaad5f1d5c09acc513054d60faa65c5ff3f677b1ea71110cbdaa0d7e70a82d1b3" - }, - { - "amount": "15", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x92b21a4f12b8f0ba2b080360cefd813e59a0381e077969d8e92069fdf02bd73c" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xe3722ebf93738e70845b32395d0fae510247cc8a47422c5a1502245af2aa6f4c" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xf1184eb4748ef0a7077fa9c904b5f2ca1a2bbf5511275f5733c63897b9b94e89" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xaa82864141782d41c3efdc9ef1eebf88638bb2f95d622739884ded6dabce48af" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x6f04647e67748be66d596795881e67ea3b75bba5dce9aef5b141debd66659367" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x561cd6c3dda8625975d58d33465078861edbc5e8e54b6e1b430c060a04726825" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x4a3c0f5cc0798f381d0155d5f66f337191da482edb3a925859a865050ffd60cd" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x6d8d009d2e891e07cc2e331ee3bc096b985c4351cb7079bbe4e38a2389d33836" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xdb7803d97430353dc7390d291b68515422d0262792328390523f1d3864a5e60d" - }, - { - "amount": "35", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x04df394a34f960aaaa8d20834ae0f67959a95cac795d481435656e1766934f29" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x7a58a413e6e1700b0b23f6fe1efec697cb9d81cc32c088b640c9b1dcef0208fc" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x3d4fc26335e99ec108594c79e335441f7dc1e5fe5d5514f3e4e16f581977a142" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xf056f81b4646fcfbf8bf1761ec6ae89fea6f29d7decf89533ed96dce541f613a" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xf05a9b8b54ab16bc32679d45f0ecd73bf37d7acda7a5d8bc68647c8522dc63c5" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x442ef49108d892ea88a80487aa78b972294402e2598530ffa24e62380c3cdef7" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xa2400c63e9f78d3ecafac4729544dd2b3ab921738ee34d8f2c4e36fbce4c84db" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xc5ce90fdd97a0be599a04682c771b2ea3e13e84e6890912cd8a701ced37c9fec" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xcf9a2d4b466d5f27b6f4adbccac28ff440fea552a7ecd71730bb8e9655fc2826" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xc69d632bf68b107e1f48b228fab2f69d35a45817b5fede690c9f85af90cad8fb" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xcf27badb78686bb44079c849e5d6d4b60f26e7819ea39a46d756a0e82901589e" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x56d1c2e52c42b9702b3fc52e45045c68a9e9363701746606dd83a1c59e8e2b4c" - }, - { - "amount": "35", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xf9a7a40c6d0cab7269338c8d2d7269757938e81e137ad77b6207041402050338" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x607b66b6b6852468f11233143f5061688f0c95a859c69f99a587f0b1e36f6fe9" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x361393aa30aa56823694ed5bd40028225b0e3449ba177a75053114aa9a2e7f15" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x1077b220b2bc407237b82b80b3a3de0bf6bc30a5f82d64217dcace430bec1245" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x628ec457c6fa3a01e91ada0f7e2b842ca0d9bcefa1d5365a2d9b4fd57e3a4e85" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xc78c41a5056f4b987d7356de418f294b2cb9bfc09e7272f14e2ba8f81b3448c1" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x0e591d7aad99439964182cb324977ad5ef6dedcebd4136af1dd8ade6bf760e62" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x9652da674d2cc7daa31998b3e6637401cc0c2b60c53bf8cf9968aa6a5becaabc" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xda8c1d350f746590ecd20e688922e1b788b91d7da28eefd975f0d2ffd739394a" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xf0fc42e15ac02582bc18598d72090fd71d2df341491af35d5364bd3711239038" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xfa763212a16ca037bc8891551d609e214843a0cdb9cec92fb8482f3b69e9cf45" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xa4ef6c3e9c7587adea300d626520917d751566f41b82721d90f54e6dd47e53f3" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x2cc183420421070edeb50da5d5a0ccda95b80900746f321f1e3d03005de37ac0" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x3857e4acd14e95e7f13c5e5140ec5f9da35741ca9c752c9d1d031edbc40b518b" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xdedafc91289d914d3e1e242dd29bac079f3d797323b4c67695036982854439f5" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x1f59cc76b1817c123069e8b1223879a9cd2ee6e6c1bd62b033283a995d7193b1" - }, - { - "amount": "15", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x50adf57cb3ed37f8b9e3a4e68d60ce4a8391e6eed4880d2051f8266a5ac62306" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x527e75e65a8e966909df9a1a68277b0e69b72171ef101b01dc9e13c8e0a6d662" - }, - { - "amount": "15", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x5f14e320a3f39f75049084147bc3bee52bfdad2769c1914688c8f1fed14c4147" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xd2c61d007c46ccf9158265e2470e56dd9b27171ca88b729d3dcce967f7d06b3e" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x070e737effa9a6fba634b7e35cda50ce442b65eaa76ea870bbda6d3dddfadb5d" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xae63d67b6e4b6fbea3dc3854a73c11c8c627a9ba5a2475ad81e78135a1d2b44a" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x8ce6d79cc8d5cf219dd1a4960ed326265b046fa4f02a60f083f410218c419f80" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x827c5e51fa739fa4841c6942078be8ac5a299068274fbaeee7812636ad1a525d" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xd95630b31e4ec5416e463793add5a6a9a84f125120577987a99825eef3920cc8" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x527e6214cfe8fd30e4cf885ac90ebb7a6bf7c50b7048de417972fb5452c8a3bd" - }, - { - "amount": "15", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x860bcea1036d81dba935a722e2c604df041463c6f60deca7a116daa478992342" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xc8c611996028952f9c61fe94b4303f7ee578b59f57e1601d73c495734e741319" - }, - { - "amount": "35", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xcbdae3fd82415ac4c1eb6f6d0cb04a793048f7b04acc44945fc37a8f9b642761" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x094e647642edaeb18994fbbd5792fcd14513ffda3210842d03539658e083e8ad" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x2e3606026d72b3432c42b15b1cb1a5fb8c570e971f62d0dd090c3fb293cc4408" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xc6bdbbaf554502ca201a780ff5c807894d0e2852140a4776caa9f446faa5b772" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x42b5cf9b619128de0dc85a581f68c62e956d738f721862d128e795cb9bc8ac77" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x38573ed58006caf497c5d1bcad3a0b18f9b10431666389fccd2ab24ed793f7dd" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x4c3f416fd16366b3be8496bbd79dc372692466670dcb6c7937e04c3ead4c9833" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x2303231152640ad9943064f1cd71baea81304e25fae97284776a7aa453c84e43" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xee1791c6a74a0a74377de98cd76eef92d5735acdd4aeff215c488065083e97d6" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x35ab3a7c826ca700a0ea1299da741802735992d9fdd4273eebade45162b735db" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xcc0b93d6543ff767d78e4bd65199f94bdfd59aca19bd532529844996871980fc" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x8e4957344ee27f9fb3b6f0afd4017b2e08c8b000fe95eaa2a709551c51c34d78" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x39b7890a45858eb60fe4ea93b93e28f4d4aee43c0beebb9cd9b772ff83923f5a" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x661a65d135ce68274bbc642e20b346324c27dd9925968ded38e395672cd81924" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x43f3c28e192489fc7f050da4a16ef8b3a9eda05dbed3c3033e98e36cdd450895" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xe8ff15ca3b21e5c90b11922c284327593c4ba1656592b7714d80970d73ff4e5c" - }, - { - "amount": "15", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x70e3cce47516bd7439142c1c9f2c53f93e69adc7e9cdc20d9cff18dfb5d1816d" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xcb4ce785faec09c6ecacabd7fb4345f73897211c89e68c3c66cccebe136d7278" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xf55d9053f3ec5ad625572cc7c3f811261cc7058b1272924dc232181eb99a1bb3" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xba0130691253e69a3b166f0a29547af94906cc913389f85474ad7f374c2fb417" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x1258ca75e9cbc13eea5af2809994bf78e070d4533f1c569cbf2e7148ae8afebc" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x6cff0fd9423db819cf6a9d592ecd3204664558febb55e77242163a2c55a7daa1" - }, - { - "amount": "15", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x33af1e6b3571cfe78d00a660d720d6bb39cee978a1f4d75920f7c74f50b22694" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x3c508e3383cf848ccf0fd4bf12b5260c975f1cd1eef065e6deab0ebba97f6b99" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x56b923ac809a83e7b67e6ba23580089ecb6f25abd3ef710f726d90cc747349ac" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xb75757fd932661f0b905899e915bff260753c40ffb5408cef08d75f51d4f28e1" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x7c3564e27d132c70194b8d1d33c896d2325139588d1026c94c9a5cbd8c9e1e71" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xa17ce5b94046aba9dd51555867ae276fde730e687040fabca6c1b5b967394d03" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x7e9c411910c33a3be1254c34daffc189df20b5724888e9d0bfbdc1f9e68843a7" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xc65c8bf05f0f9e9184bcf3ae677070699fd9ace04b04eb925834e498661f2a19" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xde1176a4e26be06a5f2c70585ccf317f7699f42e436ae5e880e0a547e20a7be2" - }, - { - "amount": "15", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x34c9742ab221566f4dc6b3c4b7a04d9a8e7bc574a4942afe8bb4c8535c124816" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x5b4f288458b8ff543e915b172f239800e9044b4e07258adf2acc1c04aec854f0" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x81413602c0757cb722d11a61e071abba83791f73cf34a52f2d37b52c4a1439b8" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xab23a94bb2c25f83d121c14c1098e1cf483a574aecc3e93bbb476020897cfb77" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x2ec724c6289b9f3f27c66a0431f6cf3e24bf5430a3e611f07e11bc9d4ba564a0" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x8d544a3f3da4118c02958ddceec05bfaf117eebbe0cdefb576771383bfb448ca" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x81404d7b286f4d85b3a9f473a639b7572421418c8bd8097ec618385ffa557321" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x7b84f821313e0fc27c5f0c5088a5fe24dc0be41387e1ed5b4df825b8ffc874b3" - }, - { - "amount": "20", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x762724cb97615abf237341f790e25a4f30d17016ed128986d64218df6c38ba40" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x93412a89ebc310858223f29f18a8be283e5b541e08a634b433165edf3777fd1c" - }, - { - "amount": "75", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x1b29c010823ce06164eb3f21e437d3ce22982e25cfdc63d935f3d4932b64a754" - }, - { - "amount": "25", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x50bdd0492e31f1ac0af0d3e95035b431aafd9effe528ae9f0c57eb98498adef9" - }, - { - "amount": "10", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x6e3a6b0599c66d8197cfe4fcacaaae2bdc7ecdcf5f62938c3316609d65de5667" - }, - { - "amount": "5", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x25b15c6f25082d63bd5ea0838dd835006ebaee339315e277b638e023e5ff6cf1" - }, - { - "amount": "2", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xd5947eb1f6aca62cd34eaee000f7b0508530096a2aaf6b1b83a78485b8600aeb" - } - ], - "withdrawals": [ - { - "amount": "1306", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xc5d6c39fca0bcf5b64555260e8d56da6ed8f2cf790a2b9342bed6d65731d363d" - }, - { - "amount": "1351", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0xa645398299934c4ea759f1573d7ae13028fcd8da9a831ac338a112b7925e4a01" - }, - { - "amount": "810", - "user": "0xaaaaFd67947Ef241D8C24C863893800083855Ed6", - "tranche_id": 11, - "tx": "0x26f83e1b57a646b5266f07b00f13f47d3983978d96e921349b24a8b2df0fbc3d" - } - ], - "total_tokens": "3467", - "withdrawn_tokens": "3467", - "remaining_tokens": "0" - }, { "address": "0xd7F6bad6Fc716b889F84a94fEE046188f08988ce", "deposits": [ @@ -16046,499 +17378,6 @@ "withdrawn_tokens": "0", "remaining_tokens": "7" }, - { - "address": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "deposits": [ - { - "amount": "30", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xf01d8626ab9fcd08f70525b1a02c506674131f987582595a6c91b2ed748274bf" - }, - { - "amount": "40", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x4f66aee35358a4fa38c5ea1364902a24147e8e7a24994c63d39fa11395723791" - }, - { - "amount": "15", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xe0d5494a3c6bbdc421a4829d9013563142a9678f43bfbe51c3434a94aad4124d" - }, - { - "amount": "40", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x496cd201528b9a9b804d84dc15f88d636e9e45a9c1384e3041776fdbb3c16d5d" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x94b8fa39786b3c9517d2d6c816062339607c442710590ec478ae3ba388924452" - }, - { - "amount": "40", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xe4e183e882a95af6df31421661e180fe3410b8067eadf55c77f6986e511da7ac" - }, - { - "amount": "15", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xf091961dcd46a7b6ef0a14af0d87a0a356938c4380b2109b1108ed2b07b55f45" - }, - { - "amount": "40", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x84b6c760e76d2a4c95caf4db66c6acb8a932edce82a0b95f142acfa9cb86075c" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x4afa5e45ae1eeb4078aa643d79854f9efa7dd009dd014ee0d371d9d01ec6cbc8" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xb2db70393614adccdafaf8df2d39fc7d5a2498944f91711ce53f58c65a818f03" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xb3e3cc7ff74f658991fc2cba707aeebaa580f310bec28b4d3956fb98fe0e988f" - }, - { - "amount": "40", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xfd7083a71ba5659fb7571fdd92f890e312ee30d7643953d8ffaa0737930f4c3c" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xe9fb0dc041c062736fb5b5fe8209aac1bfe023f8c5cf715e44e5a712c5be77b7" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x237803fda73cce9c77fc4d9d63a59cb8025d9d654fcdba49c5d88beea88a46fa" - }, - { - "amount": "15", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x4d8326dae1df42b41d412b0fa3cccc2cc47dd277e80243b86f0925978254836c" - }, - { - "amount": "15", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xc1a397e778046613f2a8164f68d626c4f0ec9d5423ef9c0dd30494ad66982437" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x2580460844cb953b4bb142f33d2500fec7b0a8325b5bd70fd53e5c35b3a08192" - }, - { - "amount": "15", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x477299222cbc0a050646b563cfd2ec5edd0302180e2fa2d004b36968508bdb22" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x7f0d36669d3c28ac5dd0f6fcd5718fe1a8ea88514f8fd3d819c59647dc314666" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xffe4ae006c6403c0b0fce3398f866d250ddc8bec8dc8f0f5ccb1dd109e386dfe" - }, - { - "amount": "15", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xd4e892131fc3e43117064e05553d54653d81f1811e8699f055441d64e0b7ce0b" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xdf7de66bfec5e28b68f174909c24d49277ffb3be4bb68a7de9949870a59310d0" - }, - { - "amount": "15", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x3c8fe9da528947fd4589240c9de5e909db173a3937a6a436ff7339457b8899ba" - }, - { - "amount": "15", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xf935e3ae522d922e6e13ed17177ea7f9708b75cad1e69f483310013151738c37" - }, - { - "amount": "15", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x110a7a7487a984a3493ef2c5dc15e2bbe95224b2ced04219a3e18114ba43634b" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x683a025526728d8eb397a9fa0bab7abf74c3c949804f7336b59bea46ceba73d7" - }, - { - "amount": "15", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x2f783dc0b4e81b587733a1c505c4c3cd5d168133dca0f5168f434028b2f944bd" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xe0e4145ac55d1c7f1b37421731791da42de08825f3c2382758624b01395e0def" - }, - { - "amount": "20", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xa4ad240ff59f25b6edc238e8d19d34e0ae65f1f15e4e5d5154f1071675adaf98" - }, - { - "amount": "5", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x9df742e299afff5b5eb3d0fd179c9db6e648c269a6edb9c1033e05462b3ba292" - }, - { - "amount": "5", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x2b9cd8ead93b5a149fddbd2bb5e1f579ee4474bde184325a89bb0c5c080c1af0" - }, - { - "amount": "5", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x943c4967d8ebfb69c1c3f3497a1ea0e450d0d1904747a9a79829afa959e1cab8" - }, - { - "amount": "5", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x0ca66c9ddfaf5a899c9b997eabd146fd4b07c134c793788c64fe81c1997c2626" - }, - { - "amount": "5", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xc95341c990a6ba671bb4944625fb04d41ad50c84687b96a53d76fd484491d623" - }, - { - "amount": "5", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x67d7b4eeaaea0aa8a396976fcf5c3281c8f90acb4cecf42f57978efb8e157520" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x0a84e6a1c9754a2d65f492560cae5acf7e4beeda9174aa0950cc1682f2e7ffdc" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xe3245777a34a71592ca3fd8a6abee146aff052b5ab0d71473b29088dcd4d184a" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x825196807104a70a8217c2af072accb1ef6fec878aa6074f9b566173fc529bb9" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x9407e2cddecf345873cf85c94467ac254542ca23971ed617e6ba9684d5fcbd55" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x08f5ea3a2d48a609ab196a732d9c146551265a98b4060495dcca98bf5fa943c5" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xa1f121eb6e1cdbaf169192e49c20f78976bbdc4dce6c0c2d505b6e88694e384a" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xfe179715f750cfc7ea2e5b024ba9d1038d560496f949796d33dc3d952a68d0c4" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x9ff3d87318031ea5ef24d4d015dd47fffa08aac382fdb298026aa7f4df790ce8" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x38ee19966c2313a0d3ed1cb4d9a3fb1f8e6b3fc4f259d91452d78c1da375792e" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x24156f35ad0391f26b8c6b7061f873b9d30e7c0aee18aaaade2f7bdc7c494338" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x264397be808b9781fc202132c016e975184afd6128f37245a6d72e5f59f2ad49" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x4a9b8b1a927616c03c9cb652cf8f6c612d8d1d119a5c48040843446d64665b5e" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x52139a9d6c010881398bf92a3a498a18da757de5a274cfea6b3c886d6db5ddba" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x6fefbdd2634fa6def9b620d81f87349fe14362f622829dab57bc43157e996beb" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xf747d4e2239462904e923313f7408633ee48cd55f02b11e21edfec59e1fe8de7" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x500467ef5f4a81bb2c21bb5001a24559a0398613b185aacb3289418387456d20" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x00a6e3dca9b5db3b2d45218849aa1ef3767755d8f2f998cc8b66796872445c0a" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x21fee2e07cfdd55225e58189302e4cb4e20a6131a7e728544dc374fcda7bb108" - }, - { - "amount": "10", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0x525647388b525dd83c7ca890274e4fbc1e5d3cf810697a4086e9e2ae47e82ed9" - }, - { - "amount": "12", - "user": "0x9646850641B15535e9e46646fbb98907eba83c6c", - "tranche_id": 11, - "tx": "0xb7a32e6bc2468401f395b36e128fe4eed1ab9cb14646473333163d07a3bf8030" - } - ], - "withdrawals": [], - "total_tokens": "872", - "withdrawn_tokens": "0", - "remaining_tokens": "872" - }, - { - "address": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "deposits": [ - { - "amount": "20", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x1a84c2a2c8a1a632dc9fb457248bf0a3c2e44f73a04cb0a80b40977a23542306" - }, - { - "amount": "40", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0xe49b1ee099389adffb1a340ab3f3b74084050cbfa9267d025b49d49d43669334" - }, - { - "amount": "15", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0xae557f8b2505150252c98b7e394bbb5705b71676ec8644b555f1752ad663a895" - }, - { - "amount": "250", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x011522488ff11ba340565ee830161fbc03cda973574deab54d1159704888c79a" - }, - { - "amount": "30", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0xaf5fc55f19e4bc29d5454750855da4c51296593bc5da6df4bafed5c6e1823a6e" - }, - { - "amount": "25", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0xeae47c77ed5a6f4cb1538e8402fe83517a4956f07ee985a665d706757bf01a11" - }, - { - "amount": "20", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x5eccf703f02deea6dc92847762f503f1c59f68476be8062fa70595a8d64d969e" - }, - { - "amount": "15", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x8671536f2fd7e764f6c7c92ad561f1fc1ae906f24bf392b9d9a95cdfeb2096bb" - }, - { - "amount": "120", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x0ae396dacbc0efc8e2e7c31827ad1456eed62cf06c312d63701aadbab2316ec7" - }, - { - "amount": "30", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x103890b7f9fc2ad044864686028cb191bddbfe5a155ae65d96f59308691c199d" - }, - { - "amount": "10", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x2000817a4845c12f21c28a2bb452f39414cbe2c55bc686b71ef80a7c31d7ca94" - }, - { - "amount": "10", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0xdfe068402a81d11c101ee284eed433db9a18505a88357bc257f6e9833b624b5b" - }, - { - "amount": "20", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x623f6e5736c8260a2ca49afee677f679a2c112523d8cb2ddd6a20b6c5ba0c97c" - }, - { - "amount": "25", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0xa1feec1dd56b55af8460d9ec002ff46d3ee6e4b32744ae2078f2838edf62fdf8" - }, - { - "amount": "5", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x39f024eaf52550bb1c6ba6431caf60e5f8c3edea6c880f438dd6dea5fd540920" - }, - { - "amount": "50", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0xc5c9a3b67c4bcb95735e5d36cdf303573a989ed2eafe23ef7edb37bc04ecc357" - }, - { - "amount": "100", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0xc7661c9c1805e0dad46edff389cf83abd7fbba6e2a58fd1d259647663a781065" - }, - { - "amount": "100", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x9726a9d61afa5c127adf249cb19ae02cdb7943d2d9512c86c13ae0f9e6542fcc" - }, - { - "amount": "110", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0xf6e38121c7a20c00990bc960094078ffaf8c3196aeeecf4280ca6ce111f9c817" - }, - { - "amount": "35", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x9241d7e23f47e6d1cc72692b3f7b31f13d580a34dda34fd9ca427511f3e5aafd" - }, - { - "amount": "75", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0xaa558c5f1739831998e2698e561a36314dfc07e4aec804f44aa24158d950179c" - }, - { - "amount": "25", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0xb455de12da921d20c19e0f30480dec62ca16880477f2667557432a1a1786966d" - }, - { - "amount": "5", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x1dbbc8c55e6b64081b2336251d1ab30886e0446a885ee7b2fa981897e94a0f6c" - } - ], - "withdrawals": [ - { - "amount": "452.842386475", - "user": "0xEb01fF124D71b6C7E6613fd6E0A86c28C733F008", - "tranche_id": 11, - "tx": "0x61c0a4966bbd17963420f02d0eb42444174371ef7d8fae1f2c6fc3e87e26c7c5" - } - ], - "total_tokens": "1135", - "withdrawn_tokens": "452.842386475", - "remaining_tokens": "682.157613525" - }, { "address": "0x5CB43a4d38714B23112F884D6c8B4725c6fc4534", "deposits": [ @@ -16582,58 +17421,6 @@ "withdrawn_tokens": "0", "remaining_tokens": "10" }, - { - "address": "0xb4143fBD0584c02F025045298E1411dd41aa7997", - "deposits": [ - { - "amount": "30", - "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", - "tranche_id": 11, - "tx": "0x487fd52ffd49afe768c9345d18407e351d64c7586d38f0b49f57d50e3022d765" - }, - { - "amount": "20", - "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", - "tranche_id": 11, - "tx": "0xddcb15e5e00f027d7cb8acd18f7288c039da483fb454dcbc615ec1f742be9fbc" - }, - { - "amount": "25", - "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", - "tranche_id": 11, - "tx": "0x739419449bb4de20119cdf1b53cfd3556417331f39f93d4d8624f9ca27ead61d" - }, - { - "amount": "10", - "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", - "tranche_id": 11, - "tx": "0x0a66911838ddeac867658d71869dc820177f91c9038a2f980dc17485fbc375d2" - }, - { - "amount": "10", - "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", - "tranche_id": 11, - "tx": "0x239d62567f82e049eb84edb68936925da4677d31bde2844080e3b3c31c57e0f3" - }, - { - "amount": "15", - "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", - "tranche_id": 11, - "tx": "0x18f75cba0ac3dbda760bb5f87245b5fba570b6cbc01eba9d92c43472f024f5d9" - } - ], - "withdrawals": [ - { - "amount": "104.9841067341", - "user": "0xb4143fBD0584c02F025045298E1411dd41aa7997", - "tranche_id": 11, - "tx": "0x61a08da77e9cee8c282eb0120a7d42ab8101ee180d8c44b4adc19d463d0f4c71" - } - ], - "total_tokens": "110", - "withdrawn_tokens": "104.9841067341", - "remaining_tokens": "5.0158932659" - }, { "address": "0x7c40366Ff73ae93D2c55228FfA84419B584a37CE", "deposits": [ @@ -16918,111 +17705,6 @@ "withdrawn_tokens": "448.48974600045", "remaining_tokens": "156.51025399955" }, - { - "address": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "deposits": [ - { - "amount": "15", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0x93b6c140ed9ccbe239ca264efe86e654a05a5c2e876081e19ef48f27efa20566" - }, - { - "amount": "30", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0xbf318e3045181fef7f383715c95294d2075b2248639fa8e91850df308226ddf9" - }, - { - "amount": "15", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0xdee069f58e8882a7ea7a871935a13776cf058270743bf966865aeaffaa54145c" - }, - { - "amount": "30", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0x9aea68533d70197adfaffed4b4ae6218c5d4cb6058f870c000daec5b45df45fd" - }, - { - "amount": "25", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0xcb7861047734897ebe61e006f38cf5e436af5272a475dd81e679afa78cd07f43" - }, - { - "amount": "20", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0xa6653d40b68d11904f9b987f2180874ebc883be8d8e004594b931129901fb5a8" - }, - { - "amount": "20", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0x3c1d2bf578de370871d3776b08f32bced321444257cbd89fcaf708653571cc78" - }, - { - "amount": "15", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0xb7f2c199013aeb3da684f38dceaa5054d3085b8feb90e7a8f7fd3d3e20b880d5" - }, - { - "amount": "25", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0xe1fa8d091699179c71b4ef4e76bd337e931cb28c2a456d0ea5f219ed19dc63b7" - }, - { - "amount": "5", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0x1cd33976d2a4fc7c76374e7d06f39d89caa89e1f767b0859810b7bbf175a9fb4" - }, - { - "amount": "25", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0x0cdc4ee13aa611e1a74c79a3aef1b79cbf517854e235934d374f9cb68e67fa2b" - }, - { - "amount": "20", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0x0eb37f439747689608842d55e49f983493b80dd7cf8f97e4f4474db2700d6901" - }, - { - "amount": "10", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0x5c379decccb82b0c9ce95bf8543efacddac6f4e082ffa04e4710ed2853ac67b4" - }, - { - "amount": "50", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0x1c253a531589d88b880927ddfd620ba1c60e946109c180e271db4b356ef9e11a" - }, - { - "amount": "25", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0x66a9e658ba6876af29de406083ad78ab4ff677e060565f6b81098470df1f96b3" - }, - { - "amount": "5", - "user": "0x20baaeB0507Ed3D33A1b1c2822b337116fbEE640", - "tranche_id": 11, - "tx": "0xd6cd5fbddd1c4edd295bbb7fa989f6a7c65571a5bb95b01bcdd9940335dd4261" - } - ], - "withdrawals": [], - "total_tokens": "335", - "withdrawn_tokens": "0", - "remaining_tokens": "335" - }, { "address": "0x2c51Dc5A225a9d8542FBf28BA9dC501f026CD5e8", "deposits": [ @@ -17510,50 +18192,17 @@ "tx": "0x90f9184ca1a7f56b34ae4670eba99c459136b24219f88bbfab630096ffd69295" } ], - "withdrawals": [], - "total_tokens": "20", - "withdrawn_tokens": "0", - "remaining_tokens": "20" - }, - { - "address": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", - "deposits": [ - { - "amount": "40", - "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", - "tranche_id": 11, - "tx": "0x8d9c17dd471a693de2f3e476ee23e4ea7502af36532f69c5b23f8d10fca3c58a" - }, - { - "amount": "30", - "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", - "tranche_id": 11, - "tx": "0x72463ae65aef04aac7a3b543bfc97a962cc635fdb97cc082bdc4fa084bfe7c0a" - }, - { - "amount": "20", - "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", - "tranche_id": 11, - "tx": "0x11b0c42c9f7c3667f268bdaa8dd88e0a0d0492ea28f8e3f7e0a96306c1f5922f" - }, - { - "amount": "10", - "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", - "tranche_id": 11, - "tx": "0xaa83567655e3e11480614db4d90303ff4ca8aaf1509b36cca6e8153f85365ccc" - } - ], "withdrawals": [ { - "amount": "97.261602612", - "user": "0x04E8cAE241235cceB521d5ba4d18BA4Bf4FA84BD", + "amount": "20", + "user": "0x1bE12ef18a63F3dbbBF3F07328E44ed31f4CCa1c", "tranche_id": 11, - "tx": "0x30000e5c392b58add351eed401823062ae39212ba6597862133cc15d95f284e2" + "tx": "0x36b5b0101966dd258c68cc0b1e58f931ba530b549d462bdcae4fcdf62ffb1e5d" } ], - "total_tokens": "100", - "withdrawn_tokens": "97.261602612", - "remaining_tokens": "2.738397388" + "total_tokens": "20", + "withdrawn_tokens": "20", + "remaining_tokens": "0" }, { "address": "0xe16f37e8741D75F47AFcDA5b2FFD00e898d9D946", @@ -17600,45 +18249,6 @@ "withdrawn_tokens": "0", "remaining_tokens": "12" }, - { - "address": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", - "deposits": [ - { - "amount": "25", - "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", - "tranche_id": 11, - "tx": "0x27c8050adbae4ce01049dc7dd2fcc8d738a823582663f4d98d306334f8167263" - }, - { - "amount": "100", - "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", - "tranche_id": 11, - "tx": "0x104429d0776629485f99b806f7c76f0379956547c946d464989193515a1a03ba" - }, - { - "amount": "20", - "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", - "tranche_id": 11, - "tx": "0x19833fb0b0ad85ab8a3e84abd932b955116f99d7f0ed1c505761cb07b2b45661" - }, - { - "amount": "10", - "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", - "tranche_id": 11, - "tx": "0x4926858faf0eb6ed1f6f58d48c63794ab6dfbf6dabb0d652a8a9bab517bd7b61" - }, - { - "amount": "2", - "user": "0xfeDf4b4406B3126744047be05A013570b09DC0cC", - "tranche_id": 11, - "tx": "0xd8fb387a63f4c66e0745787c5468f08bb8321b284ee8275ab961a52b51726381" - } - ], - "withdrawals": [], - "total_tokens": "157", - "withdrawn_tokens": "0", - "remaining_tokens": "157" - }, { "address": "0x54e6627177165Aa7b6F31752c744c306FaC993dB", "deposits": [ @@ -17773,31 +18383,17 @@ "tx": "0x633149680b6fcc585de237b6e36ac676c6fff63559d6bf85b6706ad74912f786" } ], - "withdrawals": [], - "total_tokens": "10", - "withdrawn_tokens": "0", - "remaining_tokens": "10" - }, - { - "address": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", - "deposits": [ + "withdrawals": [ { "amount": "10", - "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", + "user": "0x04E8B9AF60fb22085e68d6ec4671559c4F1c95B8", "tranche_id": 11, - "tx": "0x2b3d71399f5e657947392a355f9e74e9516fd13430d283e6d5baf6994cc06535" - }, - { - "amount": "10", - "user": "0x6C4730dCD66D130Da02256aF547B36edc9a15F63", - "tranche_id": 11, - "tx": "0xce0d84e4f939f534a8a3ddcfe77c6b01d76504a5e199e086528a0939168a999d" + "tx": "0xa0598230e871c0b8af4d12bf93e8396484ce0147a699994a87d8a56b753736c7" } ], - "withdrawals": [], - "total_tokens": "20", - "withdrawn_tokens": "0", - "remaining_tokens": "20" + "total_tokens": "10", + "withdrawn_tokens": "10", + "remaining_tokens": "0" }, { "address": "0xE8c822eb8aEDf98e7f31f0E4Be968829a33B5Ab0", @@ -18440,6 +19036,12 @@ } ], "withdrawals": [ + { + "amount": "114.2226230344", + "user": "0x4cf8879dC68ebe9F003E6231CB8B704FAbEA8d9c", + "tranche_id": 11, + "tx": "0x3a89b0faaf4d74a8b3a9a19353908c6bc53c4fe227d74ebbd6fb1120581200e2" + }, { "amount": "131.5360248618", "user": "0x4cf8879dC68ebe9F003E6231CB8B704FAbEA8d9c", @@ -18454,8 +19056,8 @@ } ], "total_tokens": "1180", - "withdrawn_tokens": "1065.7773769656", - "remaining_tokens": "114.2226230344" + "withdrawn_tokens": "1180", + "remaining_tokens": "0" }, { "address": "0xC5681832099869B7e612bfA8575f1c0ddD25633C", @@ -18737,10 +19339,17 @@ "tx": "0x9800d4d469da4bdf919b11ac7ae7877a251425ada96f00cf97f84c9e3fcd47f0" } ], - "withdrawals": [], + "withdrawals": [ + { + "amount": "45", + "user": "0x5c690a0403c2FaeC058F2d0BD654299b8714579a", + "tranche_id": 11, + "tx": "0x5422615ca2d2dfccd32c1c11b633a7f38b99406ffd4f136e07a9860e8e29dd22" + } + ], "total_tokens": "45", - "withdrawn_tokens": "0", - "remaining_tokens": "45" + "withdrawn_tokens": "45", + "remaining_tokens": "0" }, { "address": "0x734D7DB5593bAC05b85D65B956b0237D32E97D8d", @@ -21675,10 +22284,17 @@ "tx": "0x0a2925656fcd6b188cf2874cc60e91cdb1c9f963cac0761b6e7452eb4709631a" } ], - "withdrawals": [], + "withdrawals": [ + { + "amount": "12", + "user": "0x311944e80915b08248111173671093623Fd74851", + "tranche_id": 11, + "tx": "0xaf6e5941c7b0611640cc3891f6e4f7c53993161506df3519aac50d60600203c9" + } + ], "total_tokens": "12", - "withdrawn_tokens": "0", - "remaining_tokens": "12" + "withdrawn_tokens": "12", + "remaining_tokens": "0" }, { "address": "0xb6E34A8A93031a24C264Be59D0BaC00bcaeF9051", @@ -22485,8 +23101,8 @@ "tranche_start": "2022-03-05T00:00:00.000Z", "tranche_end": "2023-06-05T00:00:00.000Z", "total_added": "3732368.4671", - "total_removed": "206406.1590181460557", - "locked_amount": "2153932.72546571712695337599", + "total_removed": "208294.2003105575307", + "locked_amount": "2104934.14065585229159301994", "deposits": [ { "amount": "1998.95815", @@ -22660,6 +23276,11 @@ "user": "0xE6CacAE56Cca8dFdB7910b5A13578719D4E57DA0", "tx": "0x4bf57a075b6b597c4f0bc258f505cbc471f1879a971240449ef9bca79f9e25ed" }, + { + "amount": "1888.041292411475", + "user": "0xE6CacAE56Cca8dFdB7910b5A13578719D4E57DA0", + "tx": "0x8b7035d5e9cb361de3ba527f62f84db15e00b5a475fe5cdc696dddcd240c6b1e" + }, { "amount": "1857.955389733644", "user": "0xE6CacAE56Cca8dFdB7910b5A13578719D4E57DA0", @@ -22820,6 +23441,12 @@ "tranche_id": 1, "tx": "0x4bf57a075b6b597c4f0bc258f505cbc471f1879a971240449ef9bca79f9e25ed" }, + { + "amount": "1888.041292411475", + "user": "0xE6CacAE56Cca8dFdB7910b5A13578719D4E57DA0", + "tranche_id": 1, + "tx": "0x8b7035d5e9cb361de3ba527f62f84db15e00b5a475fe5cdc696dddcd240c6b1e" + }, { "amount": "1857.955389733644", "user": "0xE6CacAE56Cca8dFdB7910b5A13578719D4E57DA0", @@ -22882,8 +23509,8 @@ } ], "total_tokens": "187637.95", - "withdrawn_tokens": "79163.690188079642", - "remaining_tokens": "108474.259811920358" + "withdrawn_tokens": "81051.731480491117", + "remaining_tokens": "106586.218519508883" }, { "address": "0x1A71e3ED1996CAbB91bB043f880CE963D601707e", @@ -23364,8 +23991,8 @@ "tranche_start": "2022-06-05T00:00:00.000Z", "tranche_end": "2023-12-05T00:00:00.000Z", "total_added": "15870102.715470999700000001", - "total_removed": "203706.7112308988738694", - "locked_amount": "12937394.7344431535725311003765171520559611", + "total_removed": "209699.2419044759362144", + "locked_amount": "12763648.8987172091318508086364225351311165", "deposits": [ { "amount": "16249.93", @@ -23909,6 +24536,61 @@ "user": "0xE6CacAE56Cca8dFdB7910b5A13578719D4E57DA0", "tx": "0xfa00f9ea2171a1d7192fb303fd4e9a12782ceaecf122919384435a51c94fe3f5" }, + { + "amount": "3000.73048123934422", + "user": "0xe3eB4CF43C072658401996b71D43eE26E573562D", + "tx": "0x34af4aec4ad2aee41b998582dec6eebc27ced9a062a3464bea29af88953e2223" + }, + { + "amount": "491.210050778770125", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tx": "0xf81303c18c528b59edc9bbf75d357a5d3df23f093381ccc3f58856cee8bf942a" + }, + { + "amount": "383.986428974115", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tx": "0xf6970d06ffc3c3e16ecb444612aa802922fc0927860c12fab8776ac4157c6e0c" + }, + { + "amount": "421.602007222154", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tx": "0xbbf8f710557ac370641e20a688418c0521983485fb4eded5aa079114c5ef7016" + }, + { + "amount": "226.28654255055475", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tx": "0xc43828dea4085a553be2fe8586e7587c1cc7aa30bb95affb309a48d3f043b8f6" + }, + { + "amount": "270.43679763759725", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tx": "0x3dbf2e2cd6ded55c0ed8a77739c1bfcf95df0b1754214c92190bd3815a88bc26" + }, + { + "amount": "236.170928056608875", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tx": "0xba155a97a3ec3d8e8abc91e557aeff571aefb4295e0283928eef996e4bc44603" + }, + { + "amount": "283.286501655455375", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tx": "0x021e132488737b999cebed789224d90fb03c880fca5c76551ad9a44bc7b999a1" + }, + { + "amount": "103.747362124339", + "user": "0xE6CacAE56Cca8dFdB7910b5A13578719D4E57DA0", + "tx": "0x83d5b53266b61fa0e43c2b9632bc2b666214b3c36be92dcfc87550dbb3dc7571" + }, + { + "amount": "354.190494066882", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tx": "0xa7426abe92a41347cba3bd6cb50246af1b51f404337b14f1f2b4500561bf1874" + }, + { + "amount": "220.88307927124175", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tx": "0x5bb1bf666380ec002c295e372dd030b4f3068fc36e92157e42c0f12fbb31903a" + }, { "amount": "305.8599694076328", "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", @@ -24504,6 +25186,60 @@ "tranche_id": 2, "tx": "0x1e6bd91941381b74b4bec158b2366838830987396925340281bce36d0a75a514" }, + { + "amount": "491.210050778770125", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tranche_id": 2, + "tx": "0xf81303c18c528b59edc9bbf75d357a5d3df23f093381ccc3f58856cee8bf942a" + }, + { + "amount": "383.986428974115", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tranche_id": 2, + "tx": "0xf6970d06ffc3c3e16ecb444612aa802922fc0927860c12fab8776ac4157c6e0c" + }, + { + "amount": "421.602007222154", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tranche_id": 2, + "tx": "0xbbf8f710557ac370641e20a688418c0521983485fb4eded5aa079114c5ef7016" + }, + { + "amount": "226.28654255055475", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tranche_id": 2, + "tx": "0xc43828dea4085a553be2fe8586e7587c1cc7aa30bb95affb309a48d3f043b8f6" + }, + { + "amount": "270.43679763759725", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tranche_id": 2, + "tx": "0x3dbf2e2cd6ded55c0ed8a77739c1bfcf95df0b1754214c92190bd3815a88bc26" + }, + { + "amount": "236.170928056608875", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tranche_id": 2, + "tx": "0xba155a97a3ec3d8e8abc91e557aeff571aefb4295e0283928eef996e4bc44603" + }, + { + "amount": "283.286501655455375", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tranche_id": 2, + "tx": "0x021e132488737b999cebed789224d90fb03c880fca5c76551ad9a44bc7b999a1" + }, + { + "amount": "354.190494066882", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tranche_id": 2, + "tx": "0xa7426abe92a41347cba3bd6cb50246af1b51f404337b14f1f2b4500561bf1874" + }, + { + "amount": "220.88307927124175", + "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", + "tranche_id": 2, + "tx": "0x5bb1bf666380ec002c295e372dd030b4f3068fc36e92157e42c0f12fbb31903a" + }, { "amount": "305.8599694076328", "user": "0x20CD77B9FC2f1fEDfb6F184E25f7127BFE991C8b", @@ -24962,8 +25698,8 @@ } ], "total_tokens": "259998.8875", - "withdrawn_tokens": "47681.250846190229125", - "remaining_tokens": "212317.636653809770875" + "withdrawn_tokens": "50569.30367640360825", + "remaining_tokens": "209429.58382359639175" }, { "address": "0x89051CAb67Bc7F8CC44F7e270c6EDaf1EC57676c", @@ -25178,6 +25914,12 @@ } ], "withdrawals": [ + { + "amount": "3000.73048123934422", + "user": "0xe3eB4CF43C072658401996b71D43eE26E573562D", + "tranche_id": 2, + "tx": "0x34af4aec4ad2aee41b998582dec6eebc27ced9a062a3464bea29af88953e2223" + }, { "amount": "8346.84696348886654", "user": "0xe3eB4CF43C072658401996b71D43eE26E573562D", @@ -25198,8 +25940,8 @@ } ], "total_tokens": "150551.801", - "withdrawn_tokens": "24822.98623927028714", - "remaining_tokens": "125728.81476072971286" + "withdrawn_tokens": "27823.71672050963136", + "remaining_tokens": "122728.08427949036864" }, { "address": "0x4d982Ab0823fD2f48e934a7be2bb0a5374a26148", @@ -25839,6 +26581,12 @@ "tranche_id": 2, "tx": "0xfa00f9ea2171a1d7192fb303fd4e9a12782ceaecf122919384435a51c94fe3f5" }, + { + "amount": "103.747362124339", + "user": "0xE6CacAE56Cca8dFdB7910b5A13578719D4E57DA0", + "tranche_id": 2, + "tx": "0x83d5b53266b61fa0e43c2b9632bc2b666214b3c36be92dcfc87550dbb3dc7571" + }, { "amount": "102.0408544287955", "user": "0xE6CacAE56Cca8dFdB7910b5A13578719D4E57DA0", @@ -25889,8 +26637,8 @@ } ], "total_tokens": "12362.05", - "withdrawn_tokens": "2274.0483292405045", - "remaining_tokens": "10088.0016707594955" + "withdrawn_tokens": "2377.7956913648435", + "remaining_tokens": "9984.2543086351565" }, { "address": "0xb091D456d0dFCB94dcba6f355379056C5bb995fC", @@ -26514,8 +27262,8 @@ "tranche_start": "2021-11-05T00:00:00.000Z", "tranche_end": "2023-05-05T00:00:00.000Z", "total_added": "14597706.0446472999", - "total_removed": "2765441.081300436948788147", - "locked_amount": "6222274.98650230315505600275169592", + "total_removed": "2769444.968765351307634647", + "locked_amount": "6061873.9403377471066880654230242", "deposits": [ { "amount": "129284.449", @@ -26759,6 +27507,51 @@ "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", "tx": "0x6e6546452d57d7d58c5fd0671b8a43c2c6024bf845d085fc3133c6851ab18620" }, + { + "amount": "687.4475694957577135", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tx": "0xff80c2f8ad5f60e7d54bb08dd6915aeed809aa69ff8153725de58948024cc201" + }, + { + "amount": "524.90169006797662075", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tx": "0x1efa8604a80dc51c03654de56f863d6da3be8770d0391261c4ebd1c7b2589c94" + }, + { + "amount": "583.8314273418144895", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tx": "0x36012e949960001989347aa8bac10244b878d393e4b7cca277834ba12ba84ffb" + }, + { + "amount": "313.88589635872971775", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tx": "0x63d57a4625dcb8d93510f0535746d9f94fbdb167d1f46c59d35081c293e1c8a4" + }, + { + "amount": "376.096693387645659", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tx": "0xa8f0deb276839c9772168a78220c7c86b7e451804a5b9f8e59ca42704d222e81" + }, + { + "amount": "326.30978715361562575", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tx": "0x3fbfe32026006809a329d91c8d97e2f56b119e61209b74bf1f10f1952cea7a2b" + }, + { + "amount": "393.9103594911989075", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tx": "0x8f26367c5ea3710db652842ad7886fe49a99cddd5d09852664ad2c29efad678d" + }, + { + "amount": "491.109015521122622", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tx": "0xa24a08beee8ba75b9bc4c188fa8ee259093ac55ddd84e51eee3cab937aa0b45e" + }, + { + "amount": "306.39502609649749075", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tx": "0xd8267a4a22b76f92afb08d2c3bd35124f477ba4297cdadf375d0f9fa8c1d01eb" + }, { "amount": "551.363354573845008", "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", @@ -28872,6 +29665,60 @@ "tranche_id": 3, "tx": "0x6e6546452d57d7d58c5fd0671b8a43c2c6024bf845d085fc3133c6851ab18620" }, + { + "amount": "687.4475694957577135", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tranche_id": 3, + "tx": "0xff80c2f8ad5f60e7d54bb08dd6915aeed809aa69ff8153725de58948024cc201" + }, + { + "amount": "524.90169006797662075", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tranche_id": 3, + "tx": "0x1efa8604a80dc51c03654de56f863d6da3be8770d0391261c4ebd1c7b2589c94" + }, + { + "amount": "583.8314273418144895", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tranche_id": 3, + "tx": "0x36012e949960001989347aa8bac10244b878d393e4b7cca277834ba12ba84ffb" + }, + { + "amount": "313.88589635872971775", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tranche_id": 3, + "tx": "0x63d57a4625dcb8d93510f0535746d9f94fbdb167d1f46c59d35081c293e1c8a4" + }, + { + "amount": "376.096693387645659", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tranche_id": 3, + "tx": "0xa8f0deb276839c9772168a78220c7c86b7e451804a5b9f8e59ca42704d222e81" + }, + { + "amount": "326.30978715361562575", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tranche_id": 3, + "tx": "0x3fbfe32026006809a329d91c8d97e2f56b119e61209b74bf1f10f1952cea7a2b" + }, + { + "amount": "393.9103594911989075", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tranche_id": 3, + "tx": "0x8f26367c5ea3710db652842ad7886fe49a99cddd5d09852664ad2c29efad678d" + }, + { + "amount": "491.109015521122622", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tranche_id": 3, + "tx": "0xa24a08beee8ba75b9bc4c188fa8ee259093ac55ddd84e51eee3cab937aa0b45e" + }, + { + "amount": "306.39502609649749075", + "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", + "tranche_id": 3, + "tx": "0xd8267a4a22b76f92afb08d2c3bd35124f477ba4297cdadf375d0f9fa8c1d01eb" + }, { "amount": "551.363354573845008", "user": "0x4Aa3c35F6CC2d507E5C18205ee57099A4C80B19b", @@ -30608,8 +31455,8 @@ } ], "total_tokens": "359123.469575", - "withdrawn_tokens": "205541.43382354277691775", - "remaining_tokens": "153582.03575145722308225" + "withdrawn_tokens": "209545.32128845713576425", + "remaining_tokens": "149578.14828654286423575" }, { "address": "0xBdd412797c1B78535Afc5F71503b91fAbD0160fB", @@ -31696,8 +32543,8 @@ "tranche_start": "2021-10-05T00:00:00.000Z", "tranche_end": "2023-04-05T00:00:00.000Z", "total_added": "5778205.3912159303", - "total_removed": "1773434.744647395163801354", - "locked_amount": "2141555.07563268481670294448131533", + "total_removed": "1777676.283548441971192354", + "locked_amount": "2078179.652195618099575112821726758", "deposits": [ { "amount": "552496.6455", @@ -31861,6 +32708,11 @@ "user": "0xafa64cCa337eFEE0AD827F6C2684e69275226e90", "tx": "0x2a7ebd8748742d3bf0ce4f1ee46c575aa744f0d83915583bbd262f504044d462" }, + { + "amount": "4241.538901046807391", + "user": "0xafa64cCa337eFEE0AD827F6C2684e69275226e90", + "tx": "0x1893f8ee4a402f390ab25a0b2fbc4514da79fd95e68dbe59d953f580eb59c321" + }, { "amount": "8456.402651116281081", "user": "0xafa64cCa337eFEE0AD827F6C2684e69275226e90", @@ -32926,6 +33778,12 @@ "tranche_id": 4, "tx": "0x2a7ebd8748742d3bf0ce4f1ee46c575aa744f0d83915583bbd262f504044d462" }, + { + "amount": "4241.538901046807391", + "user": "0xafa64cCa337eFEE0AD827F6C2684e69275226e90", + "tranche_id": 4, + "tx": "0x1893f8ee4a402f390ab25a0b2fbc4514da79fd95e68dbe59d953f580eb59c321" + }, { "amount": "8456.402651116281081", "user": "0xafa64cCa337eFEE0AD827F6C2684e69275226e90", @@ -33060,8 +33918,8 @@ } ], "total_tokens": "331498.5873", - "withdrawn_tokens": "207637.260929465644422", - "remaining_tokens": "123861.326370534355578" + "withdrawn_tokens": "211878.799830512451813", + "remaining_tokens": "119619.787469487548187" }, { "address": "0x16da609341ed67750A8BCC5AAa2005471006Cd77", @@ -33149,8 +34007,8 @@ "tranche_start": "2022-06-05T00:00:00.000Z", "tranche_end": "2023-06-05T00:00:00.000Z", "total_added": "472355.6199999996", - "total_removed": "3277.12472942526", - "locked_amount": "341302.95275441176463040203652972", + "total_removed": "3566.94806149126", + "locked_amount": "333538.846903437040430715093861", "deposits": [ { "amount": "3000", @@ -39789,6 +40647,21 @@ "user": "0x0e199b123f71f964d6567869B6B849C1f255A855", "tx": "0x655b47bcb363722973bc74968946cc26eede31f949773251117270a966a07461" }, + { + "amount": "31.113749366", + "user": "0xe2311b0A4614BE4E839213aBbF8989127acAd455", + "tx": "0x944e402de0f86f051f3ea171e1533ee9cc48cba98033c15a1d49a091cb33acab" + }, + { + "amount": "201.207077628", + "user": "0x7345AaA0D0e4C4A46d921fA9323973956F2b7392", + "tx": "0x99d4cb057511c393049f2ee8adad4adef04b2345a12e3fe0f20b4a47b788ec5b" + }, + { + "amount": "57.502505072", + "user": "0x96d882E908C06cD697Ea07266Fb8D14ae129A50b", + "tx": "0x3907d5aa4c8358f3b63ed5d51359d72c4e00e98a62702307718c12e7a809d733" + }, { "amount": "44.069926432", "user": "0xfb393Ad714e8014947d9887912DfFB921E8aE74a", @@ -46127,6 +47000,12 @@ } ], "withdrawals": [ + { + "amount": "31.113749366", + "user": "0xe2311b0A4614BE4E839213aBbF8989127acAd455", + "tranche_id": 5, + "tx": "0x944e402de0f86f051f3ea171e1533ee9cc48cba98033c15a1d49a091cb33acab" + }, { "amount": "10.798268646", "user": "0xe2311b0A4614BE4E839213aBbF8989127acAd455", @@ -46141,8 +47020,8 @@ } ], "total_tokens": "200", - "withdrawn_tokens": "25.847659816", - "remaining_tokens": "174.152340184" + "withdrawn_tokens": "56.961409182", + "remaining_tokens": "143.038590818" }, { "address": "0xE35187d2c191b19d70C008CDB90fC05b46154e98", @@ -55861,6 +56740,12 @@ } ], "withdrawals": [ + { + "amount": "201.207077628", + "user": "0x7345AaA0D0e4C4A46d921fA9323973956F2b7392", + "tranche_id": 5, + "tx": "0x99d4cb057511c393049f2ee8adad4adef04b2345a12e3fe0f20b4a47b788ec5b" + }, { "amount": "143.788318104", "user": "0x7345AaA0D0e4C4A46d921fA9323973956F2b7392", @@ -55869,8 +56754,8 @@ } ], "total_tokens": "1200", - "withdrawn_tokens": "143.788318104", - "remaining_tokens": "1056.211681896" + "withdrawn_tokens": "344.995395732", + "remaining_tokens": "855.004604268" }, { "address": "0x47181cf36aDFb0b5dB7EfDB123f403D890607841", @@ -59101,10 +59986,17 @@ "tx": "0xe32a466fc780a0fb3fd84a804f622931ebfaf3f428bff0dc6d141270410e75f8" } ], - "withdrawals": [], + "withdrawals": [ + { + "amount": "57.502505072", + "user": "0x96d882E908C06cD697Ea07266Fb8D14ae129A50b", + "tranche_id": 5, + "tx": "0x3907d5aa4c8358f3b63ed5d51359d72c4e00e98a62702307718c12e7a809d733" + } + ], "total_tokens": "200", - "withdrawn_tokens": "0", - "remaining_tokens": "200" + "withdrawn_tokens": "57.502505072", + "remaining_tokens": "142.497494928" }, { "address": "0xD27929d68ac0E5fd5C919A5eb5968C1D06D3Fb83", diff --git a/apps/static/src/assets/testnet-network.json b/apps/static/src/assets/testnet-network.json index 4e8c841da..b74889e4c 100644 --- a/apps/static/src/assets/testnet-network.json +++ b/apps/static/src/assets/testnet-network.json @@ -1,3 +1,11 @@ { - "hosts": ["https://api.n09.testnet.vega.xyz/graphql"] + "hosts": [ + "https://api.n06.testnet.vega.xyz/graphql", + "https://api.n07.testnet.vega.xyz/graphql", + "https://api.n08.testnet.vega.xyz/graphql", + "https://api.n09.testnet.vega.xyz/graphql", + "https://api.n10.testnet.vega.xyz/graphql", + "https://api.n11.testnet.vega.xyz/graphql", + "https://api.n12.testnet.vega.xyz/graphql" + ] } diff --git a/apps/static/src/assets/testnet-tranches.json b/apps/static/src/assets/testnet-tranches.json index 0145f58b9..f3f7398c4 100644 --- a/apps/static/src/assets/testnet-tranches.json +++ b/apps/static/src/assets/testnet-tranches.json @@ -89,7 +89,7 @@ "tranche_end": "2022-10-12T00:53:20.000Z", "total_added": "1010.000000000000000001", "total_removed": "668.4622323651", - "locked_amount": "76.84230910705220220007608149416539822", + "locked_amount": "60.24085045662102080005964440639269408", "deposits": [ { "amount": "1000", diff --git a/apps/stats-e2e/.env b/apps/stats-e2e/.env index 6699d8ddf..9e19154ea 100644 --- a/apps/stats-e2e/.env +++ b/apps/stats-e2e/.env @@ -1,4 +1,3 @@ # App configuration variables NX_VEGA_ENV=TESTNET CYPRESS_VEGA_ENV=TESTNET -NX_VEGA_REST=https://api.n10.testnet.vega.xyz diff --git a/apps/stats-e2e/.env.devnet b/apps/stats-e2e/.env.devnet index c061c2c24..b3a24296b 100644 --- a/apps/stats-e2e/.env.devnet +++ b/apps/stats-e2e/.env.devnet @@ -1,4 +1,3 @@ # App configuration variables NX_VEGA_ENV=DEVNET CYPRESS_VEGA_ENV=DEVNET -NX_VEGA_REST=https://api.n04.d.vega.xyz diff --git a/apps/stats-e2e/.env.mainnet b/apps/stats-e2e/.env.mainnet index eb32266e0..07e20a88b 100644 --- a/apps/stats-e2e/.env.mainnet +++ b/apps/stats-e2e/.env.mainnet @@ -1,4 +1,3 @@ # App configuration variables NX_VEGA_ENV=MAINNET CYPRESS_VEGA_ENV=MAINNET -NX_VEGA_REST=https://api.token.vega.xyz/ diff --git a/apps/stats-e2e/.env.stagnet3 b/apps/stats-e2e/.env.stagnet3 index 04dba78fc..b63130085 100644 --- a/apps/stats-e2e/.env.stagnet3 +++ b/apps/stats-e2e/.env.stagnet3 @@ -1,4 +1,3 @@ # App configuration variables NX_VEGA_ENV=STAGNET3 CYPRESS_VEGA_ENV=STAGNET3 -NX_VEGA_REST=https://api.n01.stagnet3.vega.xyz diff --git a/apps/stats-e2e/.env.testnet b/apps/stats-e2e/.env.testnet index eee0d3285..9e19154ea 100644 --- a/apps/stats-e2e/.env.testnet +++ b/apps/stats-e2e/.env.testnet @@ -1,4 +1,3 @@ # App configuration variables NX_VEGA_ENV=TESTNET CYPRESS_VEGA_ENV=TESTNET -NX_VEGA_REST=https://api.n11.testnet.vega.xyz diff --git a/apps/stats/.env b/apps/stats/.env index 4172029d5..09839cb09 100644 --- a/apps/stats/.env +++ b/apps/stats/.env @@ -1,3 +1,3 @@ # App configuration variables NX_VEGA_ENV=MAINNET -NX_VEGA_URL=https://api.token.vega.xyz/query +NX_VEGA_URL=https://api.vega.xyz/query diff --git a/apps/stats/.env.mainnet b/apps/stats/.env.mainnet index 6ece2f727..ad3e827e6 100644 --- a/apps/stats/.env.mainnet +++ b/apps/stats/.env.mainnet @@ -1,3 +1,3 @@ # App configuration variables. No overrides for default urls NX_VEGA_ENV=MAINNET -NX_VEGA_URL=https://api.token.vega.xyz/query +NX_VEGA_URL=https://api.vega.xyz/query diff --git a/apps/token-e2e/.env b/apps/token-e2e/.env index daa771340..18a4531b5 100644 --- a/apps/token-e2e/.env +++ b/apps/token-e2e/.env @@ -6,7 +6,6 @@ NX_FAIRGROUND=false NX_VEGA_NETWORKS={} NX_VEGA_URL=http://localhost:3028/query -NX_VEGA_REST=http://localhost:3029 NX_ETHEREUM_CHAIN_ID=1440 NX_ETH_URL_CONNECT=1 NX_ETH_WALLET_MNEMONIC=ozone access unlock valid olympic save include omit supply green clown session diff --git a/apps/token-e2e/.env.mainnet b/apps/token-e2e/.env.mainnet index 333947031..cc224d3dc 100644 --- a/apps/token-e2e/.env.mainnet +++ b/apps/token-e2e/.env.mainnet @@ -1,5 +1,5 @@ # App configuration variables NX_VEGA_ENV=MAINNET -NX_VEGA_URL=https://api.token.vega.xyz/query +NX_VEGA_URL=https://api.vega.xyz/query NX_ETHEREUM_PROVIDER_URL=https://mainnet.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 NX_ETHERSCAN_URL=https://etherscan.io diff --git a/apps/token-e2e/cypress.config.js b/apps/token-e2e/cypress.config.js index a03a7e839..9d2b25f16 100644 --- a/apps/token-e2e/cypress.config.js +++ b/apps/token-e2e/cypress.config.js @@ -42,7 +42,8 @@ module.exports = defineConfig({ vegaTokenContractAddress: '0xF41bD86d462D36b997C0bbb4D97a0a3382f205B7', vegaTokenAddress: '0x67175Da1D5e966e40D11c4B2519392B2058373de', txTimeout: { timeout: 70000 }, - epochTimeout: { timeout: 11000 }, + epochTimeout: { timeout: 6000 }, blockConfirmations: 3, + CYPRESS_TEARDOWN_NETWORK_AFTER_FLOWS: true, }, }); diff --git a/apps/token-e2e/src/integration/flow/governance-flow.cy.js b/apps/token-e2e/src/integration/flow/governance-flow.cy.js index 1f17cfbfc..6101e9da9 100644 --- a/apps/token-e2e/src/integration/flow/governance-flow.cy.js +++ b/apps/token-e2e/src/integration/flow/governance-flow.cy.js @@ -4,6 +4,12 @@ const vegaWalletUnstakedBalance = '[data-testid="vega-wallet-balance-unstaked"]'; const vegaWalletStakedBalances = '[data-testid="vega-wallet-balance-staked-validators"]'; +const vegaWalletAssociatedBalance = '[data-testid="currency-value"]'; +const vegaWalletNameElement = '[data-testid="wallet-name"]'; +const vegaWallet = '[data-testid="vega-wallet"]'; +const vegaWalletName = Cypress.env('vegaWalletName'); +const vegaWalletPassphrase = Cypress.env('vegaWalletPassphrase'); +const connectToVegaWalletButton = '[data-testid="connect-to-vega-wallet-btn"]'; const newProposalButton = '[data-testid="new-proposal-link"]'; const newProposalDatabox = '[data-testid="proposal-data"]'; const newProposalSubmitButton = '[data-testid="proposal-submit"]'; @@ -11,7 +17,6 @@ const dialogCloseButton = '[data-testid="dialog-close"]'; const viewProposalButton = '[data-testid="view-proposal-btn"]'; const proposalInformationTableRows = '[data-testid="key-value-table-row"]'; const openProposals = '[data-testid="open-proposals"]'; -const vegaWalletAssociatedBalance = '[data-testid="currency-value"]'; const proposalResponseProposalIdPath = 'response.body.data.busEvents.0.event.id'; const proposalVoteProgressForPercentage = @@ -26,10 +31,13 @@ const changeVoteButton = '[data-testid="change-vote-button"]'; const proposalDetailsTitle = '[data-testid="proposal-title"]'; const proposalDetailsDescription = '[data-testid="proposal-description"]'; const voteButtons = '[data-testid="vote-buttons"]'; +const voteStatus = '[data-testid="vote-status"]'; const rejectProposalsLink = '[href="/governance/rejected"]'; const feedbackError = '[data-testid="Error"]'; const txTimeout = Cypress.env('txTimeout'); const epochTimeout = Cypress.env('epochTimeout'); +const proposalTimeout = { timeout: 14000 }; +const restConnectorForm = '[data-testid="rest-connector-form"]'; context('Governance flow - with eth and vega wallets connected', function () { before('connect wallets and set approval limit', function () { @@ -103,8 +111,8 @@ context('Governance flow - with eth and vega wallets connected', function () { } ); - beforeEach('visit staking tab', function () { - cy.navigate_to('staking'); + beforeEach('visit governance tab', function () { + cy.navigate_to('governance'); cy.wait_for_spinner(); cy.intercept('POST', '/query', (req) => { if (req.body.operationName === 'ProposalEvent') { @@ -113,12 +121,18 @@ context('Governance flow - with eth and vega wallets connected', function () { }); }); + it('Submit a proposal form - shows how many vega tokens are required to make a proposal', function () { + cy.get(newProposalButton).should('be.visible').click(); + cy.contains( + `You must have at least ${this.minProposerBalance} VEGA associated to make a proposal` + ).should('be.visible'); + }); + it('Able to submit a valid freeform proposal - with minimum required tokens associated', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('7').then( (closingDateTimestamp) => { @@ -132,7 +146,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); }); @@ -140,6 +154,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(vegaWalletUnstakedBalance, txTimeout).should( 'contain', this.minProposerBalance, @@ -168,7 +183,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); }); @@ -176,8 +191,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('7').then( (closingDateTimestamp) => { @@ -188,7 +202,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -206,8 +220,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('7').then( (closingDateTimestamp) => { @@ -218,7 +231,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -236,8 +249,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('8').then( (closingDateTimestamp) => { @@ -250,7 +262,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -282,8 +294,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('8').then( (closingDateTimestamp) => { @@ -294,7 +305,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -312,12 +323,110 @@ context('Governance flow - with eth and vega wallets connected', function () { }); }); - it('Newly created freeform proposal details - shows proposal title and full description', function () { + it('Newly created freeform proposals list - proposals closest to closing date appear higher in list', function () { + // 1004-VOTE-005 cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); + // Ensuring that proposals are not posted in same order as sort order + let proposalDays = [ + this.minCloseDays + 1, + this.maxCloseDays, + this.minCloseDays + 3, + this.minCloseDays + 2, + ]; + for (var index = 0; index < proposalDays.length; index++) { + cy.navigate_to_page_if_not_allready_loaded('governance'); + cy.get(newProposalButton).should('be.visible').click(); + cy.create_ten_digit_unix_timestamp_for_specified_days( + proposalDays[index] + ).then((closingDateTimestamp) => { + cy.enter_unique_freeform_proposal_body(closingDateTimestamp); + }); + cy.get(newProposalSubmitButton).should('be.visible').click(); + cy.contains('Awaiting network confirmation', epochTimeout).should( + 'be.visible' + ); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); + cy.get(dialogCloseButton).click(); + cy.wait_for_proposal_sync(); + } + + let arrayOfProposals = []; + cy.navigate_to('governance'); cy.wait_for_spinner(); + + cy.get(proposalDetailsTitle) + .each((proposalTitleElement) => { + arrayOfProposals.push(proposalTitleElement.text()); + }) + .then(() => { + cy.get_sort_order_of_supplied_array(arrayOfProposals).should( + 'equal', + 'descending' + ); + }); + }); + + // Skipping test due to bug: #1320 + it.skip('Newly created freeform proposals list - shows proposal parcipitation - both met and not', function () { + cy.ensure_specified_unstaked_tokens_are_associated( + this.minProposerBalance + ); + cy.navigate_to_page_if_not_allready_loaded('governance'); + cy.get(newProposalButton).should('be.visible').click(); + cy.create_ten_digit_unix_timestamp_for_specified_days('7').then( + (closingDateTimestamp) => { + cy.enter_unique_freeform_proposal_body(closingDateTimestamp); + } + ); + cy.get(newProposalSubmitButton).should('be.visible').click(); + cy.contains('Awaiting network confirmation', epochTimeout).should( + 'be.visible' + ); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); + cy.get(dialogCloseButton).click(); + cy.wait_for_proposal_sync(); + cy.navigate_to('governance'); + cy.wait_for_spinner(); + cy.get_submitted_proposal_from_proposal_list() + .as('submittedProposal') + .within(() => { + // 1004-VOTE-039 + cy.get(voteStatus).should('have.text', 'Participation not reached'); + cy.get(viewProposalButton).click(); + }); + cy.vote_for_proposal('for'); + cy.get_proposal_information_from_table('Total Supply') + .invoke('text') + .then((totalSupply) => { + let tokensRequiredToAcheiveResult = parseFloat( + (totalSupply.replace(/,/g, '') * this.requiredParticipation) / 100 + ).toFixed(2); + cy.ensure_specified_unstaked_tokens_are_associated( + tokensRequiredToAcheiveResult + ); + cy.navigate_to_page_if_not_allready_loaded('governance'); + cy.get('@submittedProposal').within(() => + cy.get(viewProposalButton).click() + ); + cy.get_proposal_information_from_table('Participation met') + .contains('👍') + .should('be.visible'); + cy.navigate_to('governance'); + cy.wait_for_spinner(); + cy.get('@submittedProposal').within(() => + cy.get(voteStatus).should('have.text', 'Participation met') + ); + }); + }); + + // Skipping test due to bug - should be solved when #1223 released + it.skip('Newly created freeform proposal details - shows proposal title and full description', function () { + cy.ensure_specified_unstaked_tokens_are_associated( + this.minProposerBalance + ); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('8').then( (closingDateTimestamp) => { @@ -330,7 +439,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -355,12 +464,12 @@ context('Governance flow - with eth and vega wallets connected', function () { }); }); - it('Newly created freeform proposal details - shows full link included in description', function () { + // Skipping test due to bug - should be solved when #1223 released + it.skip('Newly created freeform proposal details - shows full link included in description', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('8').then( (closingDateTimestamp) => { @@ -373,7 +482,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -386,11 +495,10 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.get(viewProposalButton).should('be.visible').click(); }); }); - cy.get('@freeformProposal').then((freeformProposal) => { + cy.get('@freeformProposal').then(() => { // 1004-VOTE-055 cy.get(proposalDetailsDescription) - .should('contain', freeformProposal.rationale.description) - .and('have.attr', 'href') + .should('have.attr', 'href') .and( 'equal', 'https://dweb.link/ipfs/bafybeigwwctpv37xdcwacqxvekr6e4kaemqsrv34em6glkbiceo3fcy4si' @@ -404,8 +512,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('8').then( (closingDateTimestamp) => { @@ -416,7 +523,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -445,8 +552,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('9').then( (closingDateTimestamp) => { @@ -456,7 +562,9 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should( + 'be.visible' + ); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -486,13 +594,11 @@ context('Governance flow - with eth and vega wallets connected', function () { it('Newly created freeform proposal details - shows default status set to fail', function () { // 1004-VOTE-037 - // 1004-VOTE-039 // 1004-VOTE-040 cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('7').then( (closingDateTimestamp) => { @@ -503,7 +609,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -519,6 +625,7 @@ context('Governance flow - with eth and vega wallets connected', function () { .contains('👎') .should('be.visible'); // 1004-VOTE-062 + // 1004-VOTE-040 cy.get_proposal_information_from_table('Majority met') .contains('👎') .should('be.visible'); @@ -531,8 +638,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('7').then( (closingDateTimestamp) => { @@ -543,7 +649,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -551,6 +657,9 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.get_submitted_proposal_from_proposal_list() .as('submittedProposal') .within(() => cy.get(viewProposalButton).click()); + // 1004-VOTE-080 + cy.get(voteButtons).contains('against').should('be.visible'); + cy.get(voteButtons).contains('for').should('be.visible'); cy.vote_for_proposal('for'); cy.get_governance_proposal_date_format_for_specified_days( '0', @@ -598,8 +707,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('7').then( (closingDateTimestamp) => { @@ -610,7 +718,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -662,8 +770,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('7').then( (closingDateTimestamp) => { @@ -674,7 +781,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -719,8 +826,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('7').then( (closingDateTimestamp) => { @@ -731,7 +837,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -742,7 +848,6 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.vote_for_proposal('for'); cy.get(changeVoteButton).should('be.visible').click(); cy.wait_for_spinner(); - // 1004-VOTE-080 cy.vote_for_proposal('against'); cy.get(proposalVoteProgressForPercentage) .contains('0.00%') @@ -775,8 +880,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('7').then( (closingDateTimestamp) => { @@ -787,7 +891,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal submitted', epochTimeout).should('be.visible'); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -795,8 +899,9 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.get_submitted_proposal_from_proposal_list() .as('submittedProposal') .within(() => cy.get(viewProposalButton).click()); - // 1004-VOTE-080 cy.vote_for_proposal('for'); + // 1004-VOTE-079 + cy.contains('You voted: For').should('be.visible'); cy.get_proposal_information_from_table('Total Supply') .invoke('text') .then((totalSupply) => { @@ -806,8 +911,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( tokensRequiredToAcheiveResult ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get('@submittedProposal').within(() => cy.get(viewProposalButton).click() ); @@ -818,7 +922,6 @@ context('Governance flow - with eth and vega wallets connected', function () { .contains('0.00%') .and('be.visible'); // 1004-VOTE-065 - // 1004-VOTE-079 cy.get(proposalVoteProgressForTokens) .contains(tokensRequiredToAcheiveResult) .and('be.visible'); @@ -857,8 +960,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days( this.minCloseDays - 1 @@ -869,7 +971,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal rejected', epochTimeout).should('be.visible'); + cy.contains('Proposal rejected', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -885,8 +987,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days( this.maxCloseDays + 1 @@ -897,7 +998,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal rejected', epochTimeout).should('be.visible'); + cy.contains('Proposal rejected', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -913,8 +1014,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days( this.maxCloseDays + 1 @@ -925,7 +1025,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.contains('Awaiting network confirmation', epochTimeout).should( 'be.visible' ); - cy.contains('Proposal rejected', epochTimeout).should('be.visible'); + cy.contains('Proposal rejected', proposalTimeout).should('be.visible'); cy.get(dialogCloseButton).click(); cy.wait_for_proposal_sync(); cy.navigate_to('governance'); @@ -953,8 +1053,6 @@ context('Governance flow - with eth and vega wallets connected', function () { '0.000000000000000000', txTimeout ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('1').then( (closingDateTimestamp) => { @@ -963,7 +1061,7 @@ context('Governance flow - with eth and vega wallets connected', function () { ); cy.get(newProposalSubmitButton).should('be.visible').click(); - cy.contains('Transaction failed', epochTimeout).should('be.visible'); + cy.contains('Transaction failed', proposalTimeout).should('be.visible'); cy.get(feedbackError) .contains( 'Party has insufficient associated governance tokens in their staking account to submit proposal request' @@ -975,8 +1073,7 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.ensure_specified_unstaked_tokens_are_associated( this.minProposerBalance - 0.000001 ); - cy.navigate_to('governance'); - cy.wait_for_spinner(); + cy.navigate_to_page_if_not_allready_loaded('governance'); cy.get(newProposalButton).should('be.visible').click(); cy.create_ten_digit_unix_timestamp_for_specified_days('1').then( (closingDateTimestamp) => { @@ -985,7 +1082,7 @@ context('Governance flow - with eth and vega wallets connected', function () { ); cy.get(newProposalSubmitButton).should('be.visible').click(); - cy.contains('Transaction failed', epochTimeout).should('be.visible'); + cy.contains('Transaction failed', proposalTimeout).should('be.visible'); cy.get(feedbackError) .contains( 'Party has insufficient associated governance tokens in their staking account to submit proposal request' @@ -993,6 +1090,158 @@ context('Governance flow - with eth and vega wallets connected', function () { .should('be.visible'); }); + it('Unable to create a freeform proposal - when json parent section contains unexpected field', function () { + // 1004-VOTE-038 + cy.ensure_specified_unstaked_tokens_are_associated( + this.minProposerBalance + ); + cy.navigate_to_page_if_not_allready_loaded('governance'); + cy.get(newProposalButton).should('be.visible').click(); + cy.create_ten_digit_unix_timestamp_for_specified_days('1').then( + (closingDateTimestamp) => { + cy.fixture('/proposals/freeform.json').then((freeformProposal) => { + freeformProposal.terms.closingTimestamp = closingDateTimestamp; + freeformProposal.unexpectfield = `i shouldn't be here`; + let proposalPayload = JSON.stringify(freeformProposal); + + cy.get(newProposalDatabox).type(proposalPayload, { + parseSpecialCharSequences: false, + delay: 2, + }); + }); + } + ); + cy.get(newProposalSubmitButton).should('be.visible').click(); + + cy.contains('Transaction failed', proposalTimeout).should('be.visible'); + cy.get(feedbackError) + .contains('Unknown field unexpectfield in vega commands') + .should('be.visible'); + }); + + it('Unable to create a freeform proposal - when json terms section contains unexpected field', function () { + // 1004-VOTE-038 + cy.ensure_specified_unstaked_tokens_are_associated( + this.minProposerBalance + ); + cy.navigate_to_page_if_not_allready_loaded('governance'); + cy.get(newProposalButton).should('be.visible').click(); + cy.create_ten_digit_unix_timestamp_for_specified_days('1').then( + (closingDateTimestamp) => { + cy.fixture('/proposals/freeform.json').then((freeformProposal) => { + freeformProposal.terms.closingTimestamp = closingDateTimestamp; + freeformProposal.terms.unexpectfield = `i shouldn't be here`; + let proposalPayload = JSON.stringify(freeformProposal); + + cy.get(newProposalDatabox).type(proposalPayload, { + parseSpecialCharSequences: false, + delay: 2, + }); + }); + } + ); + cy.get(newProposalSubmitButton).should('be.visible').click(); + + cy.contains('Transaction failed', proposalTimeout).should('be.visible'); + cy.get(feedbackError) + .contains('Unknown field unexpectfield in vega proposal terms') + .should('be.visible'); + }); + + // Have to skip because #1326 bug doesn't handle below scenario + it.skip('Unable to vote on a freeform proposal - when some but not enough vega associated', function () { + cy.ensure_specified_unstaked_tokens_are_associated( + this.minProposerBalance + ); + cy.navigate_to_page_if_not_allready_loaded('governance'); + cy.get(newProposalButton).should('be.visible').click(); + cy.create_ten_digit_unix_timestamp_for_specified_days('7').then( + (closingDateTimestamp) => { + cy.enter_unique_freeform_proposal_body(closingDateTimestamp); + } + ); + cy.get(newProposalSubmitButton).should('be.visible').click(); + cy.contains('Awaiting network confirmation', epochTimeout).should( + 'be.visible' + ); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); + cy.get(dialogCloseButton).click(); + cy.wait_for_proposal_sync(); + cy.staking_page_disassociate_tokens('0.0001'); + cy.get(vegaWallet).within(() => { + cy.get(vegaWalletAssociatedBalance, txTimeout).should( + 'contain', + '0.999900000000000000' + ); + }); + cy.navigate_to('governance'); + cy.wait_for_spinner(); + cy.get_submitted_proposal_from_proposal_list() + .as('submittedProposal') + .within(() => cy.get(viewProposalButton).click()); + cy.contains('Vote breakdown').should('be.visible', { timeout: 10000 }); + cy.get(voteButtons).contains('for').should('not.exist'); + cy.get(voteButtons).contains('against').should('not.exist'); + }); + + it('Unable to vote on a freeform proposal - when vega wallet disconnected - option to connect from within', function () { + cy.ensure_specified_unstaked_tokens_are_associated( + this.minProposerBalance + ); + cy.navigate_to_page_if_not_allready_loaded('governance'); + cy.get(newProposalButton).should('be.visible').click(); + cy.create_ten_digit_unix_timestamp_for_specified_days('7').then( + (closingDateTimestamp) => { + cy.enter_unique_freeform_proposal_body(closingDateTimestamp); + } + ); + cy.get(newProposalSubmitButton).should('be.visible').click(); + cy.contains('Awaiting network confirmation', epochTimeout).should( + 'be.visible' + ); + cy.contains('Proposal submitted', proposalTimeout).should('be.visible'); + cy.get(dialogCloseButton).click(); + cy.wait_for_proposal_sync(); + cy.navigate_to('governance'); + cy.wait_for_spinner(); + cy.get('[data-testid="manage-vega-wallet"]').click(); + cy.get('[data-testid="disconnect"]').click(); + cy.get_submitted_proposal_from_proposal_list() + .as('submittedProposal') + .within(() => cy.get(viewProposalButton).click()); + // 1004-VOTE-075 + // 1004-VOTE-076 + cy.get(connectToVegaWalletButton) + .should('be.visible') + .and('have.text', 'Connect Vega wallet') + .click(); + cy.contains('rest provider').click(); + cy.get(restConnectorForm).within(() => { + cy.get('#wallet').click().type(vegaWalletName); + cy.get('#passphrase').click().type(vegaWalletPassphrase); + cy.get('button').contains('Connect').click(); + }); + cy.get(vegaWalletNameElement).should('be.visible'); + cy.get(connectToVegaWalletButton).should('not.exist'); + // 1004-VOTE-100 + cy.get(vegaWalletAssociatedBalance, txTimeout).contains( + '1.000000000000000000', + txTimeout + ); + cy.vote_for_proposal('against'); + // 1004-VOTE-079 + cy.contains('You voted: Against').should('be.visible'); + }); + + after( + 'teardown environment to prevent test data bleeding into other tests', + function () { + if (Cypress.env('CYPRESS_TEARDOWN_NETWORK_AFTER_FLOWS')) { + cy.restartVegacapsuleNetwork(); + } + } + ); + Cypress.Commands.add( 'convert_unix_timestamp_to_governance_data_table_date_format', (unixTimestamp, monthTextLength = 'longMonth') => { @@ -1101,15 +1350,6 @@ context('Governance flow - with eth and vega wallets connected', function () { cy.get(voteButtons).contains(vote).click(); cy.contains('Casting vote...').should('be.visible'); cy.contains('Casting vote...', txTimeout).should('not.exist'); - - // below section temporary until #1090 fixed Casting vote in vegacapsule always says: - // Something went wrong, and your vote was not seen by the network - despite vote success - cy.navigate_to('governance'); - cy.wait_for_spinner(); - cy.get('@submittedProposal').within(() => - cy.get(viewProposalButton).click() - ); - cy.wait_for_spinner(); }); Cypress.Commands.add('wait_for_proposal_sync', () => { @@ -1137,5 +1377,32 @@ context('Governance flow - with eth and vega wallets connected', function () { } }); }); + + Cypress.Commands.add( + 'navigate_to_page_if_not_allready_loaded', + (section) => { + cy.url().then((url) => { + if (url != `http://localhost:4210/${section}`) { + cy.navigate_to(section); + cy.wait_for_spinner(); + } + }); + } + ); + + Cypress.Commands.add( + 'get_sort_order_of_supplied_array', + (suppliedArray) => { + const tempArray = []; + for (let index = 1; index < suppliedArray.length; index++) { + tempArray.push( + suppliedArray[index - 1].localeCompare(suppliedArray[index]) + ); + } + if (tempArray.every((n) => n <= 0)) return 'ascending'; + else if (tempArray.every((n) => n >= 0)) return 'descending'; + else return 'unsorted'; + } + ); }); }); diff --git a/apps/token-e2e/src/integration/flow/staking-flow.cy.js b/apps/token-e2e/src/integration/flow/staking-flow.cy.js index 3f3a4d938..320e6a284 100644 --- a/apps/token-e2e/src/integration/flow/staking-flow.cy.js +++ b/apps/token-e2e/src/integration/flow/staking-flow.cy.js @@ -17,10 +17,6 @@ const vegaWalletUnstakedBalance = '[data-testid="vega-wallet-balance-unstaked"]'; const vegaWalletStakedBalances = '[data-testid="vega-wallet-balance-staked-validators"]'; -const vegaWalletThisEpochBalances = - '[data-testid="vega-wallet-balance-this-epoch"]'; -const vegaWalletNextEpochBalances = - '[data-testid="vega-wallet-balance-next-epoch"]'; const ethWalletAssociatedBalances = '[data-testid="eth-wallet-associated-balances"]'; const ethWalletTotalAssociatedBalance = '[data-testid="currency-locked"]'; @@ -81,12 +77,6 @@ context('Staking Tab - with eth and vega wallets connected', function () { // 1002-STKE-033, 1002-STKE-034, 1002-STKE-037 cy.staking_validator_page_add_stake('2'); - // 1002-STKE-038 - cy.get(vegaWalletNextEpochBalances, txTimeout) - .should('contain', 2.0, txTimeout) - .and('contain', partValidatorId) - .and('contain', 'Next epoch'); - cy.get(vegaWalletUnstakedBalance, txTimeout).should( 'contain', 1.0, @@ -331,17 +321,6 @@ context('Staking Tab - with eth and vega wallets connected', function () { // 1002-STKE-049 cy.get(stakeNextEpochValue, epochTimeout).contains(2.0, epochTimeout); - cy.get(vegaWalletNextEpochBalances, txTimeout).should( - 'contain', - 2.0, - txTimeout - ); - - cy.get(vegaWalletThisEpochBalances, txTimeout) - .should('contain', 3.0, txTimeout) - .and('contain', partValidatorId) - .and('contain', 'This Epoch'); - cy.get(vegaWalletUnstakedBalance, txTimeout).should( 'contain', 2.0, @@ -401,12 +380,6 @@ context('Staking Tab - with eth and vega wallets connected', function () { .contains(0.0, epochTimeout) .should('be.visible'); - cy.get(vegaWalletThisEpochBalances, txTimeout).should( - 'contain', - 1.0, - txTimeout - ); - cy.get(vegaWalletUnstakedBalance, txTimeout).should( 'contain', 3.0, @@ -865,9 +838,11 @@ context('Staking Tab - with eth and vega wallets connected', function () { }); after( - 'teardown wallet so state/results dont bleed into other test suites', + 'teardown environment to prevent test data bleeding into other tests', function () { - cy.vega_wallet_teardown(); + if (Cypress.env('CYPRESS_TEARDOWN_NETWORK_AFTER_FLOWS')) { + cy.restartVegacapsuleNetwork(); + } } ); }); diff --git a/apps/token-e2e/src/integration/flow/token-association-flow.cy.js b/apps/token-e2e/src/integration/flow/token-association-flow.cy.js index e7f6c9257..7f4c850ff 100644 --- a/apps/token-e2e/src/integration/flow/token-association-flow.cy.js +++ b/apps/token-e2e/src/integration/flow/token-association-flow.cy.js @@ -33,7 +33,6 @@ context( cy.ethereum_wallet_connect(); cy.navigate_to('staking'); cy.wait_for_spinner(); - cy.wait_for_begining_of_epoch(); }); describe('Eth wallet - contains VEGA tokens', function () { @@ -276,6 +275,15 @@ context( cy.get(tokenAmountInputBox, { timeout: 10000 }).type(6500000); cy.get(tokenSubmitButton, txTimeout).should('be.disabled'); }); + + after( + 'teardown environment to prevent test data bleeding into other tests', + function () { + if (Cypress.env('CYPRESS_TEARDOWN_NETWORK_AFTER_FLOWS')) { + cy.restartVegacapsuleNetwork(); + } + } + ); }); } ); diff --git a/apps/token-e2e/src/integration/view/governance.cy.js b/apps/token-e2e/src/integration/view/governance.cy.js index a646d9225..25d15742a 100644 --- a/apps/token-e2e/src/integration/view/governance.cy.js +++ b/apps/token-e2e/src/integration/view/governance.cy.js @@ -1,7 +1,10 @@ const noOpenProposals = '[data-testid="no-open-proposals"]'; const noClosedProposals = '[data-testid="no-closed-proposals"]'; const proposalDocumentationLink = '[data-testid="external-link"]'; +const newProposalButton = '[data-testid="new-proposal-link"]'; const newProposalLink = '[data-testid="new-proposal-link"]'; +const governanceDocsUrl = 'https://vega.xyz/governance'; +const connectToVegaWalletButton = '[data-testid="connect-to-vega-wallet-btn"]'; context('Governance Page - verify elements on page', function () { before('navigate to governance page', function () { @@ -17,13 +20,25 @@ context('Governance Page - verify elements on page', function () { cy.verify_page_header('Governance'); }); - it('should be able to see link for - Find out more about Vega governance', function () { + it('should be able to see a working link for - find out more about Vega governance', function () { // 1004-VOTE-001 cy.get(proposalDocumentationLink) .should('be.visible') .and('have.text', 'Find out more about Vega governance') .and('have.attr', 'href') - .and('equal', 'https://vega.xyz/governance'); + .and('equal', governanceDocsUrl); + + cy.request(governanceDocsUrl) + .its('body') + .then((body) => { + if (!body.includes('Govern the network')) { + assert.include( + body, + 'Govern the network', + `Checking that governance link destination includes 'Govern the network' text` + ); + } + }); }); it('should be able to see button for - new proposal', function () { @@ -44,5 +59,14 @@ context('Governance Page - verify elements on page', function () { .should('be.visible') .and('have.text', 'There are no enacted or rejected proposals'); }); + + it('should be able to see a connect wallet button - if vega wallet disconnected and new proposal button selected', function () { + cy.get(newProposalButton).should('be.visible').click(); + cy.get(connectToVegaWalletButton) + .should('be.visible') + .and('have.text', 'Connect Vega wallet'); + cy.navigate_to('governance'); + cy.wait_for_spinner(); + }); }); }); diff --git a/apps/token-e2e/src/integration/view/wallet-eth.cy.js b/apps/token-e2e/src/integration/view/wallet-eth.cy.js index 72a3345d3..1af86204f 100644 --- a/apps/token-e2e/src/integration/view/wallet-eth.cy.js +++ b/apps/token-e2e/src/integration/view/wallet-eth.cy.js @@ -181,7 +181,11 @@ context('Ethereum Wallet - verify elements on widget', function () { .as('unlocked'); }) .then(function () { - expect(this.value).to.equal(this.locked + this.unlocked); + expect(parseFloat(this.value).toFixed(1)).to.equal( + parseFloat( + Math.round((this.locked + this.unlocked) * 100) / 100 + ).toFixed(1) + ); }); }); }); diff --git a/apps/token-e2e/src/integration/view/wallet-vega.cy.js b/apps/token-e2e/src/integration/view/wallet-vega.cy.js index bc6394fee..915f5fe46 100644 --- a/apps/token-e2e/src/integration/view/wallet-vega.cy.js +++ b/apps/token-e2e/src/integration/view/wallet-vega.cy.js @@ -9,7 +9,6 @@ const dialogHeader = '[data-testid="dialog-title"]'; const connectorsList = '[data-testid="connectors-list"]'; const dialogCloseBtn = '[data-testid="dialog-close"]'; const restConnectorForm = '[data-testid="rest-connector-form"]'; -const restUrl = '#url'; const restWallet = '#wallet'; const restPassphrase = '#passphrase'; const restConnectBtn = '[type="submit"]'; @@ -96,14 +95,6 @@ context('Vega Wallet - verify elements on widget', function () { }); }); - it('should have url field visible', function () { - cy.get(restConnectorForm).within(() => { - cy.get(restUrl) - .should('be.visible') - .and('have.value', 'http://localhost:1789/api/v1'); - }); - }); - it('should have wallet field visible', function () { cy.get(restConnectorForm).within(() => { cy.get(restWallet).should('be.visible'); diff --git a/apps/token-e2e/src/support/common.functions.js b/apps/token-e2e/src/support/common.functions.js index 4266ef186..52d0afbb5 100644 --- a/apps/token-e2e/src/support/common.functions.js +++ b/apps/token-e2e/src/support/common.functions.js @@ -36,3 +36,36 @@ Cypress.Commands.add('verify_page_header', (text) => { Cypress.Commands.add('wait_for_spinner', () => { cy.get(navigation.pageSpinner, { timeout: 20000 }).should('not.exist'); }); + +Cypress.Commands.add('restartVegacapsuleNetwork', () => { + Cypress.on('uncaught:exception', () => { + // stopping the network causes errors with pending transactions + // This stops those errors from preventing the teardown + return false; + }); + // We stop the network twice - since it does not always shutdown correctly on first attempt + cy.exec('vegacapsule network destroy', { failOnNonZeroExit: false }); + cy.exec('vegacapsule network destroy', { failOnNonZeroExit: false }) + .its('stderr') + .should('contain', 'network cleaning up success'); + + cy.exec( + 'vegacapsule network bootstrap --config-path=../../vegacapsule/config.hcl --force', + { failOnNonZeroExit: false, timeout: 100000 } + ) + .its('stderr') + .then((response) => { + if (!response.includes('starting network success')) { + cy.exec('vegacapsule network destroy', { failOnNonZeroExit: false }); + cy.exec( + 'vegacapsule network bootstrap --config-path=../../vegacapsule/config.hcl --force', + { failOnNonZeroExit: false, timeout: 100000 } + ) + .its('stderr') + .then((response) => { + return response; + }); + } + }) + .should('contain', 'starting network success'); +}); diff --git a/apps/token-e2e/src/support/wallet-eth.functions.js b/apps/token-e2e/src/support/wallet-eth.functions.js index 73afc921b..da0c25160 100644 --- a/apps/token-e2e/src/support/wallet-eth.functions.js +++ b/apps/token-e2e/src/support/wallet-eth.functions.js @@ -15,4 +15,8 @@ Cypress.Commands.add('ethereum_wallet_connect', () => { // this check is required since it ensures the wallet is fully (not partially) loaded cy.contains('Locked', { timeout: 15000 }).should('be.visible'); }); + // Even once eth wallet connected - attempting a transaction will fail + // It needs a few seconds before becoming operational + // eslint-disable-next-line cypress/no-unnecessary-waiting + cy.wait(4000); }); diff --git a/apps/token-e2e/src/support/wallet-vega.functions.js b/apps/token-e2e/src/support/wallet-vega.functions.js index c25826df1..d9dd8070c 100644 --- a/apps/token-e2e/src/support/wallet-vega.functions.js +++ b/apps/token-e2e/src/support/wallet-vega.functions.js @@ -32,7 +32,7 @@ Cypress.Commands.add('vega_wallet_connect', () => { .and('be.visible') .click({ force: true }); }); - cy.get('button').contains('rest provider').click(); + cy.contains('rest provider').click(); cy.get(restConnectorForm).within(() => { cy.get('#wallet').click().type(vegaWalletName); cy.get('#passphrase').click().type(vegaWalletPassphrase); diff --git a/apps/token/.env b/apps/token/.env index 2c47f7911..e8ac9604c 100644 --- a/apps/token/.env +++ b/apps/token/.env @@ -4,7 +4,6 @@ NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/testnet-network.json NX_VEGA_URL=https://api.n07.testnet.vega.xyz/graphql NX_ETHEREUM_PROVIDER_URL=https://ropsten.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 NX_ETHERSCAN_URL=https://ropsten.etherscan.io -NX_VEGA_REST=https://api.n07.testnet.vega.xyz NX_FAIRGROUND=false NX_VEGA_NETWORKS='{"DEVNET":"https://dev.token.vega.xyz","STAGNET3":"https://stagnet3.token.vega.xyz","TESTNET":"https://token.fairground.wtf","MAINNET":"https://token.vega.xyz"}' NX_GITHUB_FEEDBACK_URL=https://github.com/vegaprotocol/feedback/discussions diff --git a/apps/token/.env.capsule b/apps/token/.env.capsule index 170d608e7..981f4c890 100644 --- a/apps/token/.env.capsule +++ b/apps/token/.env.capsule @@ -8,7 +8,6 @@ NX_GITHUB_FEEDBACK_URL=https://github.com/vegaprotocol/feedback/discussions NX_VEGA_CONFIG_URL='' NX_VEGA_URL=http://localhost:3028/query -NX_VEGA_REST=http://localhost:3029 NX_ETHEREUM_CHAIN_ID=1440 NX_ETH_URL_CONNECT=1 NX_ETH_WALLET_MNEMONIC=ozone access unlock valid olympic save include omit supply green clown session diff --git a/apps/token/.env.devnet b/apps/token/.env.devnet index 63fd64b14..451952344 100644 --- a/apps/token/.env.devnet +++ b/apps/token/.env.devnet @@ -2,7 +2,6 @@ NX_VEGA_ENV=DEVNET NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/devnet-network.json NX_VEGA_URL=https://api.n04.d.vega.xyz/graphql -NX_VEGA_REST=https://api.n04.d.vega.xyz NX_VEGA_NETWORKS='{"DEVNET":"https://dev.token.vega.xyz","STAGNET3":"https://stagnet3.token.vega.xyz","TESTNET":"https://token.fairground.wtf","MAINNET":"https://token.vega.xyz"}' NX_ETHEREUM_PROVIDER_URL=https://ropsten.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 NX_ETHERSCAN_URL=https://ropsten.etherscan.io diff --git a/apps/token/.env.mainnet b/apps/token/.env.mainnet index 6706ee621..da47e4bb9 100644 --- a/apps/token/.env.mainnet +++ b/apps/token/.env.mainnet @@ -1,10 +1,9 @@ # App configuration variables NX_VEGA_ENV=MAINNET NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/mainnet-network.json -NX_VEGA_URL=https://api.token.vega.xyz/query +NX_VEGA_URL=https://api.vega.xyz/query NX_VEGA_NETWORKS='{"DEVNET":"https://dev.token.vega.xyz","STAGNET3":"https://stagnet3.token.vega.xyz","TESTNET":"https://token.fairground.wtf","MAINNET":"https://token.vega.xyz"}' NX_ETHEREUM_PROVIDER_URL=https://mainnet.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 NX_ETHERSCAN_URL=https://etherscan.io NX_GITHUB_FEEDBACK_URL=https://github.com/vegaprotocol/feedback/discussions -NX_VEGA_REST=https://api.token.vega.xyz/ NX_VEGA_EXPLORER_URL=https://explorer.vega.xyz diff --git a/apps/token/.env.stagnet3 b/apps/token/.env.stagnet3 index 4de89da81..42022681b 100644 --- a/apps/token/.env.stagnet3 +++ b/apps/token/.env.stagnet3 @@ -4,7 +4,6 @@ NX_TENDERMINT_URL=https://tm.n01.stagnet3.vega.xyz/ NX_TENDERMINT_WEBSOCKET_URL=wss://tm.n01.stagnet3.vega.xyz/websocket NX_VEGA_URL=https://api.n01.stagnet3.vega.xyz/graphql NX_VEGA_ENV=STAGNET3 -NX_VEGA_REST=https://api.n01.stagnet3.vega.xyz NX_VEGA_NETWORKS='{"DEVNET":"https://dev.token.vega.xyz","STAGNET3":"https://stagnet3.token.vega.xyz","TESTNET":"https://token.fairground.wtf","MAINNET":"https://token.vega.xyz"}' NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/stagnet3-network.json NX_VEGA_EXPLORER_URL=https://staging3.explorer.vega.xyz @@ -18,4 +17,4 @@ NX_EXPLORER_PARTIES=1 NX_EXPLORER_VALIDATORS=1 NX_EXPLORER_MARKETS=1 NX_EXPLORER_ORACLES=1 -NX_EXPLORER_TXS_LIST=1 +NX_EXPLORER_TXS_LIST=0 diff --git a/apps/token/.env.testnet b/apps/token/.env.testnet index 6c7b84b80..628fd7b21 100644 --- a/apps/token/.env.testnet +++ b/apps/token/.env.testnet @@ -6,5 +6,4 @@ NX_VEGA_NETWORKS='{"DEVNET":"https://dev.token.vega.xyz","STAGNET3":"https://sta NX_ETHEREUM_PROVIDER_URL=https://ropsten.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 NX_ETHERSCAN_URL=https://ropsten.etherscan.io NX_GITHUB_FEEDBACK_URL=https://github.com/vegaprotocol/feedback/discussions -NX_VEGA_REST=https://api.n11.testnet.vega.xyz NX_VEGA_EXPLORER_URL=https://explorer.fairground.wtf diff --git a/apps/token/src/app-loader.tsx b/apps/token/src/app-loader.tsx index 9eaf5483e..9218f681e 100644 --- a/apps/token/src/app-loader.tsx +++ b/apps/token/src/app-loader.tsx @@ -2,6 +2,7 @@ import * as Sentry from '@sentry/react'; import { toBigNum } from '@vegaprotocol/react-helpers'; import { Splash } from '@vegaprotocol/ui-toolkit'; import { useVegaWallet, useEagerConnect } from '@vegaprotocol/wallet'; +import { useEnvironment } from '@vegaprotocol/environment'; import { useWeb3React } from '@web3-react/core'; import React from 'react'; import { useTranslation } from 'react-i18next'; @@ -15,12 +16,12 @@ import { } from './contexts/app-state/app-state-context'; import { useContracts } from './contexts/contracts/contracts-context'; import { useRefreshAssociatedBalances } from './hooks/use-refresh-associated-balances'; -import { getDataNodeUrl } from './lib/get-data-node-url'; import { Connectors } from './lib/vega-connectors'; export const AppLoader = ({ children }: { children: React.ReactElement }) => { const { t } = useTranslation(); const { account } = useWeb3React(); + const { VEGA_URL } = useEnvironment(); const { keypair } = useVegaWallet(); const { appDispatch } = useAppState(); const { token, staking, vesting } = useContracts(); @@ -73,9 +74,8 @@ export const AppLoader = ({ children }: { children: React.ReactElement }) => { }, [setAssociatedBalances, account, keypair]); React.useEffect(() => { - const { base } = getDataNodeUrl(); - const networkLimitsEndpoint = new URL('/network/limits', base).href; - const statsEndpoint = new URL('/statistics', base).href; + const networkLimitsEndpoint = new URL('/network/limits', VEGA_URL).href; + const statsEndpoint = new URL('/statistics', VEGA_URL).href; // eslint-disable-next-line let interval: any = null; @@ -137,7 +137,7 @@ export const AppLoader = ({ children }: { children: React.ReactElement }) => { return () => { stopPoll(); }; - }, [appDispatch, t]); + }, [appDispatch, VEGA_URL, t]); if (Flags.NETWORK_DOWN) { return ( diff --git a/apps/token/src/app.tsx b/apps/token/src/app.tsx index 1bbf65571..ca9cea684 100644 --- a/apps/token/src/app.tsx +++ b/apps/token/src/app.tsx @@ -1,6 +1,8 @@ import './i18n'; -import React, { useMemo } from 'react'; +import React, { useMemo, useEffect } from 'react'; +import * as Sentry from '@sentry/react'; +import { Integrations } from '@sentry/tracing'; import { BrowserRouter as Router } from 'react-router-dom'; import { AppLoader } from './app-loader'; import { NetworkInfo } from '@vegaprotocol/network-info'; @@ -25,17 +27,47 @@ import { } from '@vegaprotocol/environment'; import { createClient } from './lib/apollo-client'; import { createConnectors } from './lib/web3-connectors'; +import { ENV } from './config/env'; const AppContainer = () => { const sideBar = React.useMemo(() => [, ], []); const { config, loading, error } = useEthereumConfig(); - const { ETHEREUM_PROVIDER_URL } = useEnvironment(); + const { VEGA_ENV, GIT_COMMIT_HASH, GIT_BRANCH, ETHEREUM_PROVIDER_URL } = + useEnvironment(); const Connectors = useMemo(() => { if (config?.chain_id) { return createConnectors(ETHEREUM_PROVIDER_URL, Number(config.chain_id)); } return undefined; }, [config?.chain_id, ETHEREUM_PROVIDER_URL]); + + useEffect(() => { + if (ENV.dsn) { + Sentry.init({ + dsn: ENV.dsn, + integrations: [new Integrations.BrowserTracing()], + tracesSampleRate: 0.1, + enabled: true, + environment: VEGA_ENV, + release: GIT_COMMIT_HASH, + beforeSend(event) { + if (event.request?.url?.includes('/claim?')) { + return { + ...event, + request: { + ...event.request, + url: event.request?.url.split('?')[0], + }, + }; + } + return event; + }, + }); + Sentry.setTag('branch', GIT_BRANCH); + Sentry.setTag('commit', GIT_COMMIT_HASH); + } + }, [GIT_COMMIT_HASH, GIT_BRANCH, VEGA_ENV]); + return ( diff --git a/apps/token/src/components/vega-wallet/hooks.ts b/apps/token/src/components/vega-wallet/hooks.ts index 840a7c7e8..cc863a223 100644 --- a/apps/token/src/components/vega-wallet/hooks.ts +++ b/apps/token/src/components/vega-wallet/hooks.ts @@ -197,14 +197,16 @@ export const usePollForDelegations = () => { new BigNumber(a.currentEpochStake || 0).isLessThan( b.currentEpochStake || 0 ) - ) + ) { return 1; + } if ( new BigNumber(a.currentEpochStake || 0).isGreaterThan( b.currentEpochStake || 0 ) - ) + ) { return -1; + } if ((!a.name && b.name) || a.name < b.name) return 1; if ((!b.name && a.name) || a.name > b.name) return -1; if (a.nodeId > b.nodeId) return 1; diff --git a/apps/token/src/config/env.ts b/apps/token/src/config/env.ts index b66081b81..0cacbb24d 100644 --- a/apps/token/src/config/env.ts +++ b/apps/token/src/config/env.ts @@ -47,11 +47,6 @@ const envName = windowOrDefault('NX_VEGA_ENV') ?? 'local'; export const ENV = { // Environment dsn: windowOrDefault('NX_SENTRY_DSN'), - envName, - commit: windowOrDefault('NX_COMMIT_REF'), - branch: windowOrDefault('NX_BRANCH'), - vegaUrl: windowOrDefault('NX_VEGA_URL'), - restUrl: windowOrDefault('NX_VEGA_REST'), urlConnect: TRUTHY.includes(windowOrDefault('NX_ETH_URL_CONNECT')), ethWalletMnemonic: windowOrDefault('NX_ETH_WALLET_MNEMONIC'), localProviderUrl: windowOrDefault('NX_LOCAL_PROVIDER_URL'), diff --git a/apps/token/src/lib/format-number.spec.ts b/apps/token/src/lib/format-number.spec.ts index b0fa0a6c5..32729253a 100644 --- a/apps/token/src/lib/format-number.spec.ts +++ b/apps/token/src/lib/format-number.spec.ts @@ -10,7 +10,7 @@ describe('formatNumber and formatNumberPercentage', () => { { v: new BigNumber(123), d: undefined, o: '123.00' }, // it default to 2 decimal places { v: new BigNumber(30000), d: undefined, o: '30,000.00' }, { v: new BigNumber(3.000001), d: undefined, o: '3.000001' }, - ])('formats given number correctly', ({ v, d, o }) => { + ])(`formats given number with decimals correctly`, ({ v, d, o }) => { expect(formatNumber(v, d)).toStrictEqual(o); }); }); diff --git a/apps/token/src/lib/format-number.ts b/apps/token/src/lib/format-number.ts index 911a96e16..b89af71dd 100644 --- a/apps/token/src/lib/format-number.ts +++ b/apps/token/src/lib/format-number.ts @@ -4,6 +4,6 @@ import { formatNumber as format } from '@vegaprotocol/react-helpers'; export const formatNumber = (value: BigNumber, decimals?: number) => { return format( value, - typeof decimals === 'undefined' ? Math.max(value.dp() || 0, 2) : decimals + typeof decimals === 'undefined' ? Math.max(value.dp() ?? 0, 2) : decimals ); }; diff --git a/apps/token/src/lib/get-data-node-url.ts b/apps/token/src/lib/get-data-node-url.ts deleted file mode 100644 index 7de56faff..000000000 --- a/apps/token/src/lib/get-data-node-url.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { ENV } from '../config/env'; - -export function getDataNodeUrl() { - const base = ENV.vegaUrl; - if (!base) { - throw new Error('Environment variable NX_VEGA_URL must be set'); - } - const urlHTTP = new URL(base); - const urlWS = new URL(base); - // Replace http with ws, preserving if its a secure connection eg. https => wss - urlWS.protocol = urlWS.protocol.replace('http', 'ws'); - - return { - base, - graphql: urlHTTP.href, - graphqlWebsocket: urlWS.href, - }; -} diff --git a/apps/token/src/lib/url-connector.ts b/apps/token/src/lib/url-connector.ts index 0133e0f75..4eb1521ce 100644 --- a/apps/token/src/lib/url-connector.ts +++ b/apps/token/src/lib/url-connector.ts @@ -34,8 +34,9 @@ export class CustomizedBridge extends Eip1193Bridge { // If from is present on eth_call it errors, removing it makes the library set // from as the connected wallet which works fine - if (params && params.length && params[0].from && method === 'eth_call') + if (params && params.length && params[0].from && method === 'eth_call') { delete params[0].from; + } let result; // For sending a transaction if we call send it will error // as it wants gasLimit in sendTransaction but hexlify sets the property gas diff --git a/apps/token/src/main.tsx b/apps/token/src/main.tsx index bc5d66aa6..ae63a5f52 100644 --- a/apps/token/src/main.tsx +++ b/apps/token/src/main.tsx @@ -1,43 +1,10 @@ import './styles.css'; - -import * as Sentry from '@sentry/react'; -import { Integrations } from '@sentry/tracing'; import { createRoot } from 'react-dom/client'; import App from './app'; import reportWebVitals from './report-web-vitals'; -import { ENV } from './config/env'; import { StrictMode } from 'react'; -const dsn = ENV.dsn || false; -const environment = ENV.envName || 'local'; -const commit = ENV.commit || 'local'; -const branch = ENV.branch || 'unknown'; - -/* istanbul ignore next */ -if (dsn) { - Sentry.init({ - dsn, - integrations: [new Integrations.BrowserTracing()], - tracesSampleRate: 0.1, - enabled: environment !== 'local', - environment, - release: commit, - beforeSend(event) { - if (event.request?.url?.includes('/claim?')) { - return { - ...event, - request: { ...event.request, url: event.request?.url.split('?')[0] }, - }; - } - return event; - }, - }); - - Sentry.setTag('branch', branch); - Sentry.setTag('commit', commit); -} - const rootElement = document.getElementById('root'); const root = rootElement && createRoot(rootElement); diff --git a/apps/token/src/routes/governance/components/proposal-detail-header/proposal-header.spec.tsx b/apps/token/src/routes/governance/components/proposal-detail-header/proposal-header.spec.tsx index 5c74bc83d..13e4a46a5 100644 --- a/apps/token/src/routes/governance/components/proposal-detail-header/proposal-header.spec.tsx +++ b/apps/token/src/routes/governance/components/proposal-detail-header/proposal-header.spec.tsx @@ -208,39 +208,6 @@ describe('Proposal header', () => { expect(screen.getByTestId('proposal-details')).toHaveTextContent('long'); }); - it('Renders Freeform proposal - extra long rationale (165 chars)', () => { - render( - renderComponent( - generateProposal({ - id: 'extraLong', - rationale: { - title: - 'Aenean sem odio, eleifend non sodales vitae, porttitor eu ex. Aliquam erat volutpat. Fusce pharetra libero quis risus lobortis, sed ornare leo efficitur turpis duis.', - description: - 'Aenean sem odio, eleifend non sodales vitae, porttitor eu ex. Aliquam erat volutpat. Fusce pharetra libero quis risus lobortis, sed ornare leo efficitur turpis duis.', - }, - terms: { - change: { - __typename: 'NewFreeform', - }, - }, - }) - ) - ); - // For a rationale over 160 chars, we expect the header to be truncated at 100 - // chars with ellipsis and the details-one element to contain 60 chars and also - // be truncated with an ellipsis. - expect(screen.getByTestId('proposal-title')).toHaveTextContent( - 'Aenean sem odio, eleifend non sodales vitae, porttitor eu ex. Aliquam erat volutpat. Fusce pharetra…' - ); - expect(screen.getByTestId('proposal-description')).toHaveTextContent( - 'Aenean sem odio, eleifend non sodales vitae, porttitor eu e…' - ); - expect(screen.getByTestId('proposal-details')).toHaveTextContent( - 'extraLong' - ); - }); - // Remove once proposals have rationale and re-enable above tests it('Renders Freeform proposal - id for title', () => { render( diff --git a/apps/token/src/routes/governance/components/proposal-detail-header/proposal-header.tsx b/apps/token/src/routes/governance/components/proposal-detail-header/proposal-header.tsx index 87780ee51..28c392b69 100644 --- a/apps/token/src/routes/governance/components/proposal-detail-header/proposal-header.tsx +++ b/apps/token/src/routes/governance/components/proposal-detail-header/proposal-header.tsx @@ -18,7 +18,6 @@ export const ProposalHeader = ({ proposal }: { proposal: ProposalFields }) => { } const titleContent = shorten(title, 100); - const descriptionContent = shorten(description, 60); switch (change.__typename) { case 'NewMarket': { @@ -90,15 +89,9 @@ export const ProposalHeader = ({ proposal }: { proposal: ProposalFields }) => { {titleContent || t('Unknown proposal')} - {descriptionContent && ( -
descriptionContent.length && { - title: description, - })} - data-testid="proposal-description" - > - {descriptionContent} + {description && ( +
+ {description}
)} {details &&
{details}
} diff --git a/apps/trading-e2e/cypress.config.js b/apps/trading-e2e/cypress.config.js index fb8640927..9d3b2a09f 100644 --- a/apps/trading-e2e/cypress.config.js +++ b/apps/trading-e2e/cypress.config.js @@ -30,7 +30,7 @@ module.exports = defineConfig({ viewportWidth: 1440, viewportHeight: 900, responseTimeout: 50000, - requestTimeout: 10000, + requestTimeout: 20000, }, env: { TRADING_TEST_VEGA_WALLET_NAME: 'UI_Trading_Test', diff --git a/apps/trading-e2e/src/support/mocks/generate-candles.ts b/apps/trading-e2e/src/support/mocks/generate-candles.ts index 3ac1912f3..212e2994e 100644 --- a/apps/trading-e2e/src/support/mocks/generate-candles.ts +++ b/apps/trading-e2e/src/support/mocks/generate-candles.ts @@ -10,7 +10,7 @@ export const generateCandles = ( ): CandlesQuery => { const candles: CandleFieldsFragment[] = [ { - datetime: '2022-04-06T09:15:00Z', + timestamp: '1661515200000000000', high: '17481092', low: '17403651', open: '17458833', @@ -19,7 +19,7 @@ export const generateCandles = ( __typename: 'Candle', }, { - datetime: '2022-04-06T09:30:00Z', + timestamp: '1661516100000000000', high: '17491202', low: '17361138', open: '17446470', @@ -28,7 +28,7 @@ export const generateCandles = ( __typename: 'Candle', }, { - datetime: '2022-04-06T09:45:00Z', + timestamp: '1661517000000000000', high: '17424522', low: '17337719', open: '17367174', diff --git a/apps/trading/.env.mainnet b/apps/trading/.env.mainnet index c23385bad..c0983a9df 100644 --- a/apps/trading/.env.mainnet +++ b/apps/trading/.env.mainnet @@ -1,7 +1,7 @@ # App configuration variables NX_VEGA_ENV=MAINNET NX_VEGA_CONFIG_URL=https://static.vega.xyz/assets/mainnet-network.json -NX_VEGA_URL=https://api.token.vega.xyz/query +NX_VEGA_URL=https://api.vega.xyz/query NX_VEGA_NETWORKS='{\"MAINNET\":\"https://alpha.console.vega.xyz\"}' NX_ETHEREUM_PROVIDER_URL=https://mainnet.infura.io/v3/4f846e79e13f44d1b51bbd7ed9edefb8 NX_ETHERSCAN_URL=https://etherscan.io diff --git a/apps/trading/lib/config/env.ts b/apps/trading/lib/config/env.ts index c15bc1a5e..b153f0721 100644 --- a/apps/trading/lib/config/env.ts +++ b/apps/trading/lib/config/env.ts @@ -12,10 +12,9 @@ const windowOrDefault = (key: string, defaultValue?: string) => { * So must provide the default with the key so that next can figure it out. */ export const ENV = { + envName: windowOrDefault('NX_VEGA_ENV', process.env['NX_VEGA_ENV']), dsn: windowOrDefault( 'NX_TRADING_SENTRY_DSN', process.env['NX_TRADING_SENTRY_DSN'] ), - envName: windowOrDefault('NX_VEGA_ENV', process.env['NX_VEGA_ENV']), - vegaUrl: windowOrDefault('NX_VEGA_URL', process.env['NX_VEGA_URL']), }; diff --git a/libs/candles-chart/src/lib/Candles.graphql b/libs/candles-chart/src/lib/Candles.graphql index a53432b74..3b0110aac 100644 --- a/libs/candles-chart/src/lib/Candles.graphql +++ b/libs/candles-chart/src/lib/Candles.graphql @@ -1,5 +1,5 @@ fragment CandleFields on Candle { - datetime + timestamp high low open diff --git a/libs/candles-chart/src/lib/__generated__/Candles.ts b/libs/candles-chart/src/lib/__generated__/Candles.ts index 6762edcd5..c60224e57 100644 --- a/libs/candles-chart/src/lib/__generated__/Candles.ts +++ b/libs/candles-chart/src/lib/__generated__/Candles.ts @@ -3,7 +3,7 @@ import { Schema as Types } from '@vegaprotocol/types'; import { gql } from '@apollo/client'; import * as Apollo from '@apollo/client'; const defaultOptions = {} as const; -export type CandleFieldsFragment = { __typename?: 'Candle', datetime: string, high: string, low: string, open: string, close: string, volume: string }; +export type CandleFieldsFragment = { __typename?: 'Candle', timestamp: string, high: string, low: string, open: string, close: string, volume: string }; export type CandlesQueryVariables = Types.Exact<{ marketId: Types.Scalars['ID']; @@ -12,7 +12,7 @@ export type CandlesQueryVariables = Types.Exact<{ }>; -export type CandlesQuery = { __typename?: 'Query', market?: { __typename?: 'Market', id: string, decimalPlaces: number, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string } }, candles?: Array<{ __typename?: 'Candle', datetime: string, high: string, low: string, open: string, close: string, volume: string } | null> | null } | null }; +export type CandlesQuery = { __typename?: 'Query', market?: { __typename?: 'Market', id: string, decimalPlaces: number, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string } }, candles?: Array<{ __typename?: 'Candle', timestamp: string, high: string, low: string, open: string, close: string, volume: string } | null> | null } | null }; export type CandlesEventsSubscriptionVariables = Types.Exact<{ marketId: Types.Scalars['ID']; @@ -20,11 +20,11 @@ export type CandlesEventsSubscriptionVariables = Types.Exact<{ }>; -export type CandlesEventsSubscription = { __typename?: 'Subscription', candles: { __typename?: 'Candle', datetime: string, high: string, low: string, open: string, close: string, volume: string } }; +export type CandlesEventsSubscription = { __typename?: 'Subscription', candles: { __typename?: 'Candle', timestamp: string, high: string, low: string, open: string, close: string, volume: string } }; export const CandleFieldsFragmentDoc = gql` fragment CandleFields on Candle { - datetime + timestamp high low open diff --git a/libs/candles-chart/src/lib/data-source.ts b/libs/candles-chart/src/lib/data-source.ts index df3d7bec6..f600f93a9 100644 --- a/libs/candles-chart/src/lib/data-source.ts +++ b/libs/candles-chart/src/lib/data-source.ts @@ -199,7 +199,7 @@ function parseCandle( decimalPlaces: number ): Candle { return { - date: new Date(candle.datetime), + date: new Date(Number(candle.timestamp) / 1_000_000), high: Number(addDecimal(candle.high, decimalPlaces)), low: Number(addDecimal(candle.low, decimalPlaces)), open: Number(addDecimal(candle.open, decimalPlaces)), diff --git a/libs/cypress/src/lib/eip1193-bridge.ts b/libs/cypress/src/lib/eip1193-bridge.ts index 430a0008c..31531fe46 100644 --- a/libs/cypress/src/lib/eip1193-bridge.ts +++ b/libs/cypress/src/lib/eip1193-bridge.ts @@ -50,8 +50,9 @@ export class CustomizedBridge extends Eip1193Bridge { // If from is present on eth_call it errors, removing it makes the library set // from as the connected wallet which works fine - if (params && params.length && params[0].from && method === 'eth_call') + if (params && params.length && params[0].from && method === 'eth_call') { delete params[0].from; + } let result; // For sending a transaction if we call send it will error // as it wants gasLimit in sendTransaction but hexlify sets the property gas diff --git a/libs/environment/README.md b/libs/environment/README.md index 0666759b5..d27f51a73 100644 --- a/libs/environment/README.md +++ b/libs/environment/README.md @@ -8,8 +8,6 @@ The environment variables needed to be present for any app consuming this librar `NX_VEGA_ENV` is the name of the environment. -`NX_VEGA_REST` is the REST endpoint for the environment. - `NX_VEGA_URL` OR `NX_VEGA_CONFIG_URL` - either the network configuration url or a url to a node to directly connect to `NX_VEGA_WALLET_URL` the default vega wallet URL diff --git a/libs/environment/src/hooks/use-config.spec.tsx b/libs/environment/src/hooks/use-config.spec.tsx index a747ac219..5f4179b00 100644 --- a/libs/environment/src/hooks/use-config.spec.tsx +++ b/libs/environment/src/hooks/use-config.spec.tsx @@ -87,24 +87,6 @@ describe('useConfig hook', () => { }); }); - it('caches the configuration', async () => { - const { result: firstResult } = renderHook(() => - useConfig({ environment: mockEnvironment }, onError) - ); - - await waitFor(() => { - expect(fetch).toHaveBeenCalledTimes(1); - expect(firstResult.current.config).toEqual(mockConfig); - }); - - const { result: secondResult } = renderHook(() => - useConfig({ environment: mockEnvironment }, onError) - ); - - expect(fetch).toHaveBeenCalledTimes(1); - expect(secondResult.current.config).toEqual(mockConfig); - }); - it('executes the error callback when the config endpoint fails', async () => { // @ts-ignore typescript doesn't recognise the mocked instance global.fetch.mockImplementation(() => Promise.reject()); diff --git a/libs/environment/src/hooks/use-config.tsx b/libs/environment/src/hooks/use-config.tsx index 7ed2cbd58..bc1ee1277 100644 --- a/libs/environment/src/hooks/use-config.tsx +++ b/libs/environment/src/hooks/use-config.tsx @@ -1,11 +1,8 @@ import { useState, useEffect } from 'react'; -import { LocalStorage } from '@vegaprotocol/react-helpers'; import { ErrorType } from '../types'; -import type { Environment, Configuration, Networks } from '../types'; +import type { Environment, Configuration } from '../types'; import { validateConfiguration } from '../utils/validate-configuration'; -export const LOCAL_STORAGE_NETWORK_KEY = 'vegaNetworkConfig'; - export type EnvironmentWithOptionalUrl = Partial & Omit; @@ -16,36 +13,6 @@ const compileHosts = (hosts: string[], envUrl?: string) => { return hosts; }; -const getCacheKey = (env: Networks) => `${LOCAL_STORAGE_NETWORK_KEY}-${env}`; - -const getCachedConfig = (env: Networks, envUrl?: string) => { - const cacheKey = getCacheKey(env); - const value = LocalStorage.getItem(cacheKey); - - if (value) { - try { - const config = JSON.parse(value) as Configuration; - const hasError = validateConfiguration(config); - - if (hasError) { - throw new Error('Invalid configuration found in the storage.'); - } - - return { - ...config, - hosts: compileHosts(config.hosts, envUrl), - }; - } catch (err) { - LocalStorage.removeItem(cacheKey); - console.warn( - 'Malformed data found for network configuration. Removed cached configuration, continuing...' - ); - } - } - - return undefined; -}; - type UseConfigOptions = { environment: EnvironmentWithOptionalUrl; defaultConfig?: Configuration; @@ -57,7 +24,7 @@ export const useConfig = ( ) => { const [loading, setLoading] = useState(false); const [config, setConfig] = useState( - defaultConfig ?? getCachedConfig(environment.VEGA_ENV, environment.VEGA_URL) + defaultConfig ); useEffect(() => { @@ -78,10 +45,6 @@ export const useConfig = ( const hosts = compileHosts(configData.hosts, environment.VEGA_URL); isMounted && setConfig({ hosts }); - LocalStorage.setItem( - getCacheKey(environment.VEGA_ENV), - JSON.stringify({ hosts }) - ); isMounted && setLoading(false); } catch (err) { if (isMounted) { diff --git a/libs/market-depth/src/lib/orderbook-data.ts b/libs/market-depth/src/lib/orderbook-data.ts index 1bb1341e3..58aabfd98 100644 --- a/libs/market-depth/src/lib/orderbook-data.ts +++ b/libs/market-depth/src/lib/orderbook-data.ts @@ -284,7 +284,7 @@ export const updateCompactedRows = ( ); }); - // update cummulative ask only below hihgest modified price level + // update cumulative ask only below highest modified price level if (sellModifiedIndex !== -1) { for (let i = Math.min(sellModifiedIndex, data.length - 2); i >= 0; i--) { data[i] = { @@ -296,7 +296,7 @@ export const updateCompactedRows = ( }; } } - // update cummulative bid only above lowest modified price level + // update cumulative bid only above lowest modified price level if (buyModifiedIndex !== data.length) { for (let i = Math.max(buyModifiedIndex, 1), l = data.length; i < l; i++) { data[i] = { diff --git a/libs/market-depth/src/lib/orderbook-row.tsx b/libs/market-depth/src/lib/orderbook-row.tsx index 5e8f018a3..f38ac7c04 100644 --- a/libs/market-depth/src/lib/orderbook-row.tsx +++ b/libs/market-depth/src/lib/orderbook-row.tsx @@ -61,6 +61,7 @@ export const OrderbookRow = React.memo( /> { onRowClicked={(rowEvent: RowClickedEvent) => { const { data, event } = rowEvent; // filters out clicks on the symbol column because it should display asset details - if ((event?.target as HTMLElement).tagName.toUpperCase() === 'BUTTON') + if ( + (event?.target as HTMLElement).tagName.toUpperCase() === 'BUTTON' + ) { return; + } onSelect((data as MarketWithData).id); }} /> diff --git a/libs/network-stats/README.md b/libs/network-stats/README.md index 6bf3a76db..788522b3e 100644 --- a/libs/network-stats/README.md +++ b/libs/network-stats/README.md @@ -8,8 +8,6 @@ Two environment variables need to be present for any app consuming this library. `NX_VEGA_ENV` is the name of the environment. -`NX_VEGA_REST` is the REST endpoint for the environment. - For examples, see Block Explorer's .env files [here](../../apps/explorer) ## Running unit tests diff --git a/libs/network-stats/src/components/stats-manager/__generated__/NetworkStats.ts b/libs/network-stats/src/components/stats-manager/__generated__/NetworkStats.ts index 1f4e6990f..f925889b6 100644 --- a/libs/network-stats/src/components/stats-manager/__generated__/NetworkStats.ts +++ b/libs/network-stats/src/components/stats-manager/__generated__/NetworkStats.ts @@ -25,10 +25,6 @@ export interface NetworkStats_nodeData { * Number of nodes validating */ validatingNodes: number; - /** - * Total uptime for all epochs across all nodes. Or specify a number of epochs - */ - uptime: number; } export interface NetworkStats_statistics { @@ -81,6 +77,10 @@ export interface NetworkStats_statistics { * Current chain ID */ chainId: string; + /** + * RFC3339Nano uptime of the node + */ + upTime: string; } export interface NetworkStats { diff --git a/libs/network-stats/src/components/stats-manager/stats-manager.tsx b/libs/network-stats/src/components/stats-manager/stats-manager.tsx index b033bd268..43d414d40 100644 --- a/libs/network-stats/src/components/stats-manager/stats-manager.tsx +++ b/libs/network-stats/src/components/stats-manager/stats-manager.tsx @@ -24,7 +24,6 @@ const STATS_QUERY = gql` totalNodes inactiveNodes validatingNodes - uptime } statistics { status @@ -39,6 +38,7 @@ const STATS_QUERY = gql` appVersion chainVersion chainId + upTime } } `; diff --git a/libs/network-stats/src/config/stats-fields.ts b/libs/network-stats/src/config/stats-fields.ts index ffed3dda9..553acf3dd 100644 --- a/libs/network-stats/src/config/stats-fields.ts +++ b/libs/network-stats/src/config/stats-fields.ts @@ -140,7 +140,7 @@ export const statsFields: { [key in keyof Stats]: StatFields[] } = { description: t('Tendermint software version on this node'), }, ], - uptime: [ + upTime: [ { title: t('Uptime'), formatter: (t: string) => { diff --git a/libs/react-helpers/src/lib/format/number.ts b/libs/react-helpers/src/lib/format/number.ts index e7c2bc1e3..4a13c067e 100644 --- a/libs/react-helpers/src/lib/format/number.ts +++ b/libs/react-helpers/src/lib/format/number.ts @@ -1,5 +1,6 @@ import { BigNumber } from 'bignumber.js'; import { BigNumber as EthersBigNumber } from 'ethers'; +import isNil from 'lodash/isNil'; import memoize from 'lodash/memoize'; import React from 'react'; import { getUserLocale } from './utils'; @@ -23,6 +24,9 @@ export function addDecimal( decimalPrecision = decimals ): string { if (!decimals) return value.toString(); + if (!decimalPrecision || decimalPrecision < 0) { + return toBigNum(value, decimals).toFixed(0); + } return toBigNum(value, decimals).toFixed(decimalPrecision); } @@ -32,13 +36,15 @@ export function removeDecimal(value: string, decimals: number): string { } // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat -export const getNumberFormat = memoize( - (digits: number) => - new Intl.NumberFormat(getUserLocale(), { - minimumFractionDigits: digits, - maximumFractionDigits: digits, - }) -); +export const getNumberFormat = memoize((digits: number) => { + if (isNil(digits) || digits < 0) { + return new Intl.NumberFormat(getUserLocale()); + } + return new Intl.NumberFormat(getUserLocale(), { + minimumFractionDigits: Math.max(0, digits), + maximumFractionDigits: Math.max(0, digits), + }); +}); export const getDecimalSeparator = memoize( () => diff --git a/libs/react-helpers/src/lib/grid/cumulative-vol-cell.tsx b/libs/react-helpers/src/lib/grid/cumulative-vol-cell.tsx index 955e69aa0..0e4d0c948 100644 --- a/libs/react-helpers/src/lib/grid/cumulative-vol-cell.tsx +++ b/libs/react-helpers/src/lib/grid/cumulative-vol-cell.tsx @@ -2,6 +2,7 @@ import React from 'react'; import type { ICellRendererParams } from 'ag-grid-community'; import classNames from 'classnames'; import { BID_COLOR, ASK_COLOR } from './vol-cell'; +import { addDecimalsFormatNumber } from '../format'; export interface CumulativeVolProps { ask?: number; @@ -11,6 +12,7 @@ export interface CumulativeVolProps { indicativeVolume?: string; testId?: string; className?: string; + positionDecimalPlaces: number; } export interface ICumulativeVolCellProps extends ICellRendererParams { @@ -26,6 +28,7 @@ export const CumulativeVol = React.memo( indicativeVolume, testId, className, + positionDecimalPlaces, }: CumulativeVolProps) => { const askBar = relativeAsk ? (
({indicativeVolume}) + + ({addDecimalsFormatNumber(indicativeVolume, positionDecimalPlaces ?? 0)} + ) + ) : ( - {ask ? ask : null} + {ask ? addDecimalsFormatNumber(ask, positionDecimalPlaces ?? 0) : null} {ask && bid ? '/' : null} - {bid ? bid : null} + {bid ? addDecimalsFormatNumber(bid, positionDecimalPlaces ?? 0) : null} ); return (
{askBar} {bidBar} diff --git a/libs/wallet/src/wallet-types.ts b/libs/wallet/src/wallet-types.ts index 8d71eb0ec..17caf9394 100644 --- a/libs/wallet/src/wallet-types.ts +++ b/libs/wallet/src/wallet-types.ts @@ -90,7 +90,7 @@ interface ProposalNewMarketTerms { future: { settlementAsset: string; quoteName: string; - settlementPriceDecimals: number; + settlementDataDecimals: number; oracleSpecForSettlementPrice: OracleSpecFor; oracleSpecForTradingTermination: OracleSpecFor; oracleSpecBinding: OracleSpecBinding; @@ -127,7 +127,7 @@ interface ProposalUpdateMarketTerms { code: string; future: { quoteName: string; - settlementPriceDecimals: number; + settlementDataDecimals: number; oracleSpecForSettlementPrice: OracleSpecFor; oracleSpecForTradingTermination: OracleSpecFor; oracleSpecBinding: OracleSpecBinding; diff --git a/libs/web3/src/lib/web3-connect-dialog.tsx b/libs/web3/src/lib/web3-connect-dialog.tsx index 9ec13fdca..bc01fd653 100644 --- a/libs/web3/src/lib/web3-connect-dialog.tsx +++ b/libs/web3/src/lib/web3-connect-dialog.tsx @@ -49,15 +49,17 @@ export const Web3ConnectDialog = ({ }; function getConnectorInfo(connector: Connector) { - if (connector instanceof MetaMask) + if (connector instanceof MetaMask) { return { name: 'MetaMask', text: t('MetaMask, Brave or other injected web wallet'), }; - if (connector instanceof WalletConnect) + } + if (connector instanceof WalletConnect) { return { name: 'WalletConnect', text: t('WalletConnect'), }; + } return { name: 'Unknown', text: t('Unknown') }; } diff --git a/vegacapsule/genesis.tmpl b/vegacapsule/genesis.tmpl index 1db7246b9..d590a9ca8 100644 --- a/vegacapsule/genesis.tmpl +++ b/vegacapsule/genesis.tmpl @@ -213,7 +213,7 @@ "spam.protection.proposal.min.tokens": "1000000000000000000", "spam.protection.voting.min.tokens": "1000000000000000000", "validators.delegation.minAmount": "100000000000000000", - "validators.epoch.length": "6s", + "validators.epoch.length": "5s", "validators.vote.required": "0.67" }, "network_limits": { diff --git a/workspace.json b/workspace.json index 16a7ce752..e6dcf11f1 100644 --- a/workspace.json +++ b/workspace.json @@ -15,6 +15,8 @@ "fills": "libs/fills", "governance": "libs/governance", "liquidity": "libs/liquidity", + "liquidity-provision-dashboard": "apps/liquidity-provision-dashboard", + "liquidity-provision-dashboard-e2e": "apps/liquidity-provision-dashboard-e2e", "market-depth": "libs/market-depth", "market-info": "libs/market-info", "market-list": "libs/market-list",